我正在尝试连接到另一个域中VPN上的远程SQL Server。当我在SQL Server上输入服务器名称并选择“其他连接参数”以添加学校需要的一些其他东西时:
Integrated Security=SSPI; User ID=DOMAIN\username; Password=Password
我收到以下错误:
登录失败。该登录名来自不受信任的域,不能与Windows身份验证一起使用。
我正在尝试连接到另一个域中VPN上的远程SQL Server。当我在SQL Server上输入服务器名称并选择“其他连接参数”以添加学校需要的一些其他东西时:
Integrated Security=SSPI; User ID=DOMAIN\username; Password=Password
我收到以下错误:
登录失败。该登录名来自不受信任的域,不能与Windows身份验证一起使用。
Answers:
您试图从应用程序的连接字符串中以纯文本形式传递Windows凭据。这根本不是Windows身份验证的工作原理,并且在很大程度上达不到目的。
您也不能只在自己的域中使用相同的密码创建相同的用户名,并期望它能神奇地工作。域名仍然是验证的一部分-您的计算机必须是该域的一部分,或者您的计算机所在的域必须由学校的域信任。
我知道的唯一解决方法是针对SSMS,这就是此答案中runas /netonly
描述的技巧。这会使Windows愚蠢地以您指定的登录名而不是您自己的登录名启动SSMS(这不是您可以在SSMS的“连接属性”对话框中设置的,这是您需要从命令行或快捷方式启动SSMS的方式):
runas /netonly /user:domain\username "C:\path_to\ssms.exe"
这将提示您在远程域中输入密码。它会看起来就像是使用本地Windows凭据,但它不是。
可能也可以与Visual Studio一起使用,但我真的不知道。
因此,您的选择是:
runas /netonly
使用Visual Studio 尝试技巧runas /netonly
SSMS 使用技巧runas
事确实与Visual Studio工作。
还有另一种方法,我现在优先使用该runas /netonly
方法。
您可以使用Windows控制面板中的凭据管理器将凭据添加到Windows中的配置文件中。
使用您要存储其凭据的SQL实例的名称和端口号填充“互联网或网络地址”字段。
示例:UniServer:1433
(1433是默认端口,您可能需要其他端口,尤其是在连接到命名实例时)
MYDOMAIN\MYUSER
)如果正确设置了服务器名称,端口和登录详细信息,则现在应该可以从大多数客户端工具,SSMS,Excel等使用Windows身份验证。他们都将使用存储的凭据。
提示:有时,添加凭据时需要为服务器使用FQN。例如UniServer.UniDomain.org:1433
,这完全取决于您的网络。
这是该方法的快速演示:http: //youtu.be/WiVBPsqB9b4
这是我尝试(并失败)从桌面连接到在VM中运行的SQL Server的屏幕截图,然后添加所需的凭据并再次尝试-成功。
提示:使用“ cmdkey / add”命令对创建和更新存储的凭据进行脚本编写。