无法远程连接数据库时使用BCP命令遇登录失败问题求助
解决BCP远程连接SQL Server登录失败的问题
嘿,我一眼就发现问题的核心啦!你在BCP命令里同时混用了两种互斥的身份验证方式,这直接导致了登录失败错误。
问题根源
你同时使用了:
-T参数:这代表启用Windows集成身份验证,BCP会用当前登录Windows的用户(也就是错误提示里的KASRA\mnaghsh)尝试连接SQL Server-U sa -P 0000参数:这是指定SQL Server身份验证的账户和密码
SQL Server无法同时识别两种身份验证方式,所以抛出了Login failed for user 'KASRA\mnaghsh'的错误。
解决方案
根据你实际想使用的身份验证方式,修改BCP命令二选一即可:
方案1:使用SQL Server身份验证(sa账户)
去掉 -T 参数,确保SQL Server已启用SQL身份验证,且sa账户有权限访问目标表:
bcp "Select personelid, '13'+date date, scheduleid, scheduleGroupName, DetailCollectionID, Name, TimesStructure, DayNO, Sequence, WPID, ToleranceTimes, DayState, StructureID, ID, STime, ETime from framework.att.PersonDateStructure" queryout "D:\test\pds.txt" -c -S 10.0.0.108 -U sa -P 0000
方案2:使用Windows集成身份验证
去掉 -U 和 -P 参数,同时确保当前Windows用户 KASRA\mnaghsh 在远程SQL Server上已创建登录名,且拥有访问framework.att.PersonDateStructure表的权限:
bcp "Select personelid, '13'+date date, scheduleid, scheduleGroupName, DetailCollectionID, Name, TimesStructure, DayNO, Sequence, WPID, ToleranceTimes, DayState, StructureID, ID, STime, ETime from framework.att.PersonDateStructure" queryout "D:\test\pds.txt" -T -c -S 10.0.0.108
额外检查项
如果修改后仍无法连接,还需要确认:
- 远程SQL Server的防火墙是否开放了1433端口(SQL Server默认端口)
- SQL Server配置管理器中是否启用了TCP/IP远程连接
- 若用SQL身份验证,需确认SQL Server实例已允许混合身份验证模式
内容的提问来源于stack exchange,提问作者Mohammad Naghsh
相关产品推荐
相关产品推荐

