Sql server Can';t使用SSMS和Windows 7凭据管理器连接到不同域中的SQL Server

Sql server Can';t使用SSMS和Windows 7凭据管理器连接到不同域中的SQL Server,sql-server,windows-authentication,ssms,Sql Server,Windows Authentication,Ssms,我需要连接到另一个Windows域中的SQL Server 2008实例来管理它。我们只使用Windows身份验证 在Windows XP中,我可以使用“管理网络密码”功能在本地计算机上存储远程计算机的用户名和密码。这样做会导致SQLServerManagementStudio在连接到该服务器时使用这些凭据,而不是我的本地凭据。这非常有效,避免了我每次连接SSMS时都必须输入用户名或密码 但是,天哪,升级到Windows7后,我再也不能这样做了。在凭据管理器中添加我的远程域凭据无法产生所需的行为

我需要连接到另一个Windows域中的SQL Server 2008实例来管理它。我们只使用Windows身份验证

在Windows XP中,我可以使用“管理网络密码”功能在本地计算机上存储远程计算机的用户名和密码。这样做会导致SQLServerManagementStudio在连接到该服务器时使用这些凭据,而不是我的本地凭据。这非常有效,避免了我每次连接SSMS时都必须输入用户名或密码

但是,天哪,升级到Windows7后,我再也不能这样做了。在凭据管理器中添加我的远程域凭据无法产生所需的行为。SMSS 2008 R2忽略存储的凭据,而是始终发送我的本地凭据,导致每次登录都失败。在SMS中甚至没有一种方法可以输入备用凭据,因此结果就是我无法访问远程服务器

登录失败,并显示以下消息:

登录失败。登录名来自 不受信任的域,无法使用 使用Windows身份验证。 (Microsoft SQL Server,错误:18452)


如何使Windows 7上的SMS与Windows XP上的SMS一样工作?

看起来Windows 7凭据管理器中存在导致此行为的错误。经过大量的互联网研究,我发现了一些丑陋的解决办法,但也找到了一个很好的解决办法:

在凭据管理器中,为远程服务器添加一个条目,但不要只添加服务器名称(如database.contoso.com),而是使用SQL server端口添加服务器名称,如下所示:

database.contoso.com:1433

这将导致所需的行为,没有痛苦

资料来源:

当然,还要记住,您需要在Credential Manager中的远程用户名前面加上远程域名,如下所示:


database\administrator

您是否尝试过使用此方法?我没有,但如果您不想使用凭据管理器,它看起来是一个不错的选择。请注意,如果您试图连接到命名实例,端口将不是1433。您可以找到当前的动态端口,或者使用中的说明将其更改为固定端口。要展开Greg的注释,您将创建一个类似于database.contoso.com:12345的凭据管理器条目(或者命名实例所在的任何奇怪端口)。但是,当您连接SSMS时,您将使用database.contoso.com,12345(注意逗号而不是冒号)。