我正在尝试连接到不同域中的VPN上的远程sql Server.当我在sql Server上输入服务器名称并选择其他连接参数以添加我学校所需的一些额外内容时:
Integrated Security=SSPI; User ID=DOMAIN\username; Password=Password
我收到以下错误:
Login Failed. The login is from an untrusted domain and cannot be used with Windows authentication.
解决方法
您正在尝试从应用程序的连接字符串中以纯文本格式传递Windows凭据.这根本不是Windows身份验证的工作原理,并且很大程度上违背了目的.
您也不能只在自己的域中使用相同的密码创建相同的用户名,并希望它能够神奇地工作.域名仍然是验证的一部分 – 您的机器必须是域的一部分,或者您的机器所在的域必须由学校的域信任.
我所知道的唯一解决方法是SSMS,这就是this answer中描述的runas / netonly技巧.这使Windows无法启动SSMS作为您指定的登录,而不是您自己的(这不是您可以在Connection属性中设置的) SSMS对话框,您需要从命令行或快捷方式启动SSMS:
runas /netonly /user:domain\username "C:\path_to\ssms.exe"
这将提示您在远程域中输入密码.它看起来像是使用您的本地Windows凭据,but it is not.
它可能也适用于Visual Studio,但我真的不知道.
所以你的选择是:
>让大学允许您加入您的机器到域>让大学将您的域名添加为受信任的域名>在VPN内部有一个跳转框,允许您使用RDP并使用直接连接到sql Server计算机的工具>使用sql身份验证>尝试使用Visual Studio运行runas / netonly技巧>只需使用带有SSMS的runas / netonly技巧