【问题标题】:Using cached credentials to connect to SQL 2005 across a domain boundary使用缓存的凭据跨域连接到 SQL 2005
【发布时间】:2008-08-22 14:28:18
【问题描述】:

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

然而,自从切换到 Vista 后,尝试将 SSMS 连接到 DMZ 域中的服务器时,我收到消息 用户“登录失败”。该用户未与受信任的 SQL Server 连接关联。 如果我将连接选项更改为使用命名管道而不是默认 TCP/IP,我的缓存凭据将被发送并且一切正常。无论 Windows 防火墙是关闭还是打开都是这种情况,并且与我们内部域(我的开发 PC 所在的域)中的服务器的连接通过 TCP/IP 或命名管道正常工作。

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

【问题讨论】:

    标签: sql-server ssms


    【解决方案1】:

    “用户 ' ' 登录失败,该用户未与受信任的 SQL Server 连接关联”。

    在这种情况下,客户端可能会建立tcp连接,另外,在本地管理员或非管理员机器帐户下运行,无论SPN是否注册,客户端凭据显然无法被SQL Server识别。

    这里的解决方法是:

    在目标 SQL Server 计算机上创建与客户端计算机上相同的帐户,并使用相同的密码,并为该帐户授予适当的权限。

    让我们更详细地解释一下:

    当您在两者上创建相同的 NT 帐户(我们称之为 usr1)时 工作站,您实际上连接并模拟了本地帐户 连接站。即当您从station1连接到station2时, 您正在通过 station2 的帐户进行身份验证。所以,如果你设置 SQL Server 的启动帐户(假设它在 station2 上运行)是 station2 的 usr1,当您使用 station1 的 usr1 从 station1 连接到 SQL 时 登录,SQL 将验证您为 station2 的 usr1。

    现在,在 SQL 中,您绝对可以访问 station1 的资源。虽然,怎么 访问权限取决于 station1 的 usr1 权限。

    到目前为止,SQL 只处理属于 sysadmin 角色的用户 SQL 服务器。要允许其他用户(非 sysamdin)访问网络资源, 您必须设置代理帐户。看看这篇文章 附加信息。 取自http://blogs.msdn.com/sql_protocols/archive/2006/12/02/understanding-kerberos-and-ntlm-authentication-in-sql-server-connections.aspx

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        我认为这是因为 Vista 运行大多数应用程序时都是独立于其他应用程序的。

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

        【讨论】:

          猜你喜欢
          • 2013-03-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-16
          相关资源
          最近更新 更多