如何通过sqlcmd使用Windows身份验证连接远程MSSQL?
用sqlcmd通过Windows域身份验证连接MSSQL的正确方法
你的错误根源是误用了SQL身份验证参数:-U和-P是针对SQL Server本地账号的登录参数,而my/Username.admin01是AD域的Windows身份验证用户。sqlcmd会将-U参数里的/解析为命令参数分隔符,自动截断成myUsername.admin01,最终导致登录失败。
正确的连接方式分两种场景:
场景1:当前已登录目标域用户
直接使用信任连接参数-E(该参数为默认项,可省略):
sqlcmd -S <ip> -C -E
或简化为:
sqlcmd -S <ip> -C
场景2:当前未登录目标域用户
用runas命令切换到目标域用户身份执行sqlcmd:
runas /user:my\Username.admin01 "sqlcmd -S <ip> -C"
执行后会提示输入该域用户的密码,输入正确即可完成连接。
注意事项:
- 确保目标MSSQL实例已启用Windows身份验证
- 该域用户已被授予MSSQL的登录权限
- 网络环境允许AD域身份验证流量(Kerberos/NTLM)通行
内容的提问来源于stack exchange,提问作者swm
相关产品推荐
相关产品推荐

