我的数据库客户端和数据库服务器在不同的机器上,并没有连接到同一个域(这是不支持与我的networking主机)。 我不想通过连接string发送用户名/密码的详细信息,并希望使用Windows身份validation连接到数据库。
在这篇文章的概述中,它提到了这个(重点是我的):
当您使用Windows身份validation连接到SQL Server时,您可以使用Kerberos或NTLM身份validation,具体取决于您的服务器和域的configuration。 在以下情况下,您可能无法使用Kerberos身份validation:
您的数据库客户端和数据库服务器由阻止Kerberos身份validation的防火墙分隔。
您的应用程序服务器和数据库服务器位于不相信的域中。
在这些情况下,您可以使用镜像本地帐户或SQL身份validation。 使用镜像本地帐户,您可以在每台服务器上使用相同的用户名和密码configuration两个帐户。 您必须确保密码保持不变 。
我假设这只是意味着在两台机器上创build一个相同的用户名和密码的Windows用户,但我怀疑这将工作。 当我在数据库客户机上为此用户添加权限时,它会将用户名与服务器名称相加,并且在数据库服务器上创build数据库login时会发生同样的情况。
这是什么意思创build一个镜像的本地帐户? 如果是这样,考虑到用户在不同的领域,这个工作如何?
你已经正确理解了这个过程。 您需要设置两个用户帐户。 一个将在SQL Server主机上创build,另一个将在您要连接的客户端上创build。 他们的用户名和密码应该是相同的。
SQL Server将用户名与主机名或域名作为前缀,但这不是问题,Windows身份validation机制正确parsing用户名部分,如果其他用户的密码相同,则authentication其他用户。