镜像本地帐户以连接到不同服务器和域上的数据库

ajb*_*ven 4 windows-server-2008 windows-authentication sql-server windows-server-2012

我的数据库客户端和数据库服务器在不同的机器上,没有连接到同一个域(我的网络主机不支持)。我不想通过连接字符串发送用户名/密码详细信息,并希望使用 Windows 身份验证连接到数据库。

本文的概述中,它提到了这一点(强调我的):

当您使用 Windows 身份验证连接到 SQL Server 时,您可以使用 Kerberos 或 NTLM 身份验证,具体取决于您的服务器和域的配置。如果出现以下情况,您可能无法使用 Kerberos 身份验证:

  • 您的数据库客户端和数据库服务器由阻止 Kerberos 身份验证的防火墙分隔。

  • 您的应用程序服务器和数据库服务器位于不同的域中,互不信任。

在这些情况下,您可以使用镜像本地帐户或 SQL 身份验证。使用镜像本地帐户,您可以在每台服务器上使用相同的用户名和密码配置两个帐户。您必须确保密码保持不变

我假设这只是意味着在两台机器上创建一个具有相同用户名和密码的 Windows 用户,但是我怀疑这是否可行。当我在数据库客户端上为这个用户添加权限时,它在用户名前面加上服务器名,在数据库服务器上创建数据库登录时也会发生同样的事情。

这是创建镜像本地帐户的意思吗?如果是这样,考虑到用户位于不同的域中,这如何工作?

小智 5

你已经正确理解了这个过程。您需要设置两个用户帐户。一个将在 SQL Server 主机上创建,另一个将在您要连接的客户端上创建。他们的用户名和密码应该相同。

SQL Server 使用主机名或域名作为用户名的前缀,但这不是问题,Windows 身份验证机制会正确解析用户名部分并在其他用户的密码相同时对其他用户进行身份验证。