使用缓存的凭证通过域边界连接到SQL 2005

问题描述:

前段时间在我的开发计算机上迁移到Vista后,从SSMS等客户端工具连接到DMZ活动目录域中的SQL Server并没有像以前那样工作。在XP中,只要我以某种方式在服务器上进行了身份验证(例如,将资源管理器定向到\ server.dmzdomain \ c $并在登录提示符中输入有效的凭证),SSMS将使用这些缓存的凭据进行连接。使用缓存的凭证通过域边界连接到SQL 2005

但是,由于切换到Vista,当试图将SSMS连接到DMZ域中的服务器时,我收到消息登录用户'失败。用户未与可信的SQL Server连接相关联。如果我将连接选项更改为使用命名管道而不是默认的TCP/IP,则会发送缓存的凭据并且一切正常。无论Windows防火墙是关闭还是打开,并且连接到我们内部域(与我的开发人员PC相同的域)中的服务器的连接都可以在TCP/IP或命名管道上正常工作。

我不介意在这些连接中使用命名管道作为解决方法,但似乎TCP/IP是推荐的连接方法,我不喜欢不理解为什么它不像我期望的那样工作。有任何想法吗?

您是否曾尝试在提升模式下运行SSMS,并且您是否在客户端安装了最新的SP?

我会假设这是因为Vista与大多数应用程序隔离运行。

我建议您设置DMZ用户名和密码以匹配内部域用户名和密码,或使用命名管道进行连接。

“登录用户失败”,用户没有与可信的SQL Server连接关联“。

在这种情况下,客户端可能会使tcp连接加上在本地管理员或非管理员计算机帐户下运行,无论SPN是否注册,客户端凭据显然都无法被SQL Server识别。这里

解决方法是:

创建相同的帐户作为客户机与目标SQL Server计算机上相同的密码的一个,并授予相应权限的帐户。

让我们更详细地解释:

当您创建相同的NT帐户(姑且称之为USR1)两个 工作站,你基本上是连接并冒充本地帐户的 连接站。即,当您从station1连接到station2时, 您正在通过station2的帐户进行身份验证。因此,如果您将SQL Server的 启动帐户设置为 station2的usr1,那么当您从station1连接到SQL并使用station1的usr1 登录时,SQL会将您认证为station2的usr1。

现在,在SQL中,您绝对可以访问station1的资源。虽然,如何获得更多访问权限将取决于station1的usr1权限。

到目前为止,SQL仅处理SQL Server中属于sysadmin角色的用户。为了允许其他用户(非系统管理员)访问网络资源, 您必须设置代理帐户。看看有关 其他信息的文章。 取自http://blogs.msdn.com/sql_protocols/archive/2006/12/02/understanding-kerberos-and-ntlm-authentication-in-sql-server-connections.aspx