该问题与 SQL 和 Windows 身份验证之间的差异有关。在 Windows 身份验证的情况下,例如在具有多个不受信任域的域环境中,只能选择runas.exe /netonly /user:YourTargetDomain\SQLUser
在适当的 SQL 用户下运行 SQLCMD 或 Ssms.exe(SQL 管理工作室)。
sqlcmd 和 ssms 都可以在没有任何凭据SQLCMD -E
(Studio 中的 UI 选项)的情况下使用 Windows(也是域)身份验证,但进程应该作为在 SQL 中为 NT 身份验证配置的本地或域用户运行。或者提供 SQL 用户凭据(直接在 SQL 服务器上配置,例如 SA)- SQLCMD -U SQLUserName -P SQLUserPassword
(Studio 中的第二个 UI 选项)。
以下命令可用于从单独的不受信任域中的机器(例如,使用您的办公室域帐户的办公室笔记本电脑 - 未配置为访问 SQL 服务器)连接到配置了 Windows (NT) 身份验证的 SQL 服务器(例如实验室域用户)。
运行 SSMS(可以创建一个 windows 桌面快捷方式,ssms 的路径可以不同,取决于使用的版本和安装偏好):
C:\Windows\System32\runas.exe /netonly /user:MyLabDomain\SqlUser "C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\Ssms.exe
使用 SQLCMD 运行查询(在示例中,它清理表,也可以用作快捷方式):
C:\Windows\System32\runas.exe /netonly /user:MyLabDomain\SqlUser "sqlcmd -S 123.123.12.34 -E -I -Q \"delete FROM TestDB..TestTableToEmpty\""
- SSMS 或 SQLCMD 应安装在您连接到 SQL 服务器的计算机上。
- 运行后,您应该输入 SQL 用户的密码。
我想,这些例子可能会对某人有所帮助。