【问题标题】:SQL Server linked server will not connectSQL Server 链接服务器将无法连接
【发布时间】:2021-12-28 17:40:25
【问题描述】:

我通过客户端连接到我们的 LAN,并且我正在使用 SSMS v18.9.1 连接到两个不同的 SQL Server 实例。我对两者都有读/写访问权限。我们将它们称为服务器 A 和服务器 B。

我希望能够使用链接服务器从服务器 A 查询服务器 B。

使用“链接服务器”向导逐步完成设置,将安全性更改为“使用登录名的当前安全上下文进行”,完成步骤后出现以下错误。

已创建链接服务器,但连接测试失败。是否要保留链接服务器?

用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。 (.Net SqlClient 数据提供者)

然后我尝试了以下方法。使用 Windows 应用程序“连接远程桌面连接”,我直接登录到我想从中创建“链接服务器”连接的服务器,打开 SSMS,测试连接,发现它有效。

为什么我能够连接链接的服务器,当我直接登录到服务器时,我正在建立连接,而不是在通过客户端登录时建立连接?

我需要能够通过我的客户端进行连接,并让链接服务器正常连接。

非常感谢任何解决此问题的帮助

【问题讨论】:

  • 如果服务器不在域中或者您使用的是本地帐户,Windows 身份验证可能不适合您。

标签: sql-server linked-server


【解决方案1】:

为什么我能够连接到链接服务器,当我直接登录到服务器时,我正在建立连接,而在通过客户端登录时建立连接?

因为始终允许用户在本地登录时执行模拟。用户具有本地登录权限,因此使用该用户的 NTLM 哈希或 Kerberos 票证执行网络访问不会被视为安全风险。

但是当用户只对服务器进行了网络认证时,如果没有额外的安全配置,服务器是不允许冒充用户获取其他网络资源的。这种情况称为“双跳”,只有在您已将服务器(在 AD 中)配置为允许 Kerberos Delegation 时,才能执行双跳身份验证。如果 IIS 或 SQL Server 受到攻击,如果它可以冒充网络上的任何用户,请考虑爆炸半径。

基本上,您的域管理员必须批准此服务器才能执行任何双跳身份验证,并且您必须配置正确的 SPN。有一个tool 可以帮助您正确配置。

所以选项包括:

  1. 跳过让 Kerberos 约束委派工作的难度,
  2. 为您的链接服务器使用 SQL 身份验证
  3. 从始终以本地登录开始的 SQL 代理作业访问链接服务器。

【讨论】:

    猜你喜欢
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多