一尘不染

在不同域中使用 Windows 身份验证连接到 SQL Server

sql

我正在尝试连接到不同域中 VPN 上的远程 SQL Server。当我在 SQL Server 上输入服务器名称并选择其他连接参数以添加我的学校需要的一些额外内容时:

Integrated Security=SSPI; User ID=DOMAIN\username; Password=Password

我收到以下错误:

登录失败。登录来自不受信任的域,不能用于 Windows 身份验证。


阅读 107

收藏
2022-10-25

共1个答案

一尘不染

您正尝试从应用程序的连接字符串中以纯文本形式传递 Windows 凭据。这根本不是 Windows 身份验证的工作方式,并且在很大程度上违背了目的。

您也不能只在自己的域中使用相同的密码创建相同的用户名,并期望它能神奇地工作。域名仍然是验证的一部分——你的机器要么必须是域的一部分,要么你的机器所在的域必须受到学校域的信任。

我知道的唯一解决方法是 SSMS(它也适用于其他应用程序,例如Plan Explorer 和 SentryOne),这就是这个答案runas /netonly中描述的技巧。这会欺骗 Windows 以您指定的登录名而不是您自己的登录名启动 SSMS(这不是您可以在 SSMS 的连接属性对话框中设置的内容,这是您需要从命令行或快捷方式启动 SSMS 的方式):

runas /netonly /user:domain\username "C:\path_to\ssms.exe"

这将提示您输入远程域中的密码。看起来它正在使用您的本地 Windows 凭据,但它不是.

这应该适用于任何应用程序,包括 Visual Studio。

所以你的选择是:

  • 让大学允许您将计算机加入域
  • 让大学将您的域添加为受信任域
  • 在 VPN 中有一个跳转框,允许您进行 RDP 并使用直接连接到 SQL Server 计算机的工具
  • 使用 SQL 身份验证
  • 使用runas /netonlySSMS 或 Visual Studio 的技巧
2022-10-25