为委托配置链接服务器

可以对 SQL Server 和 Windows 进行配置,从而通过转发经过身份验证的 Windows 用户的凭据来使得连接到 SQL Server 实例的客户端能够连接到其他 SQL Server 实例。此安排称为“委托”。在委托下,Windows 用户使用 Windows 身份验证连接到的 SQL Server 实例在与另一个实例进行通信时将“模拟”该用户。当特定登录名使用自映射登录特定链接服务器时,分布式查询需使用安全帐户委托。

委托要求

为说明委托要求,请考虑下列情况:用户登录到一台客户机,而该客户机与运行 SQL Server、SQLSERVER1 实例的服务器相连接。用户希望在链接服务器 SQLSERVER2 上对数据库运行分布式查询。这种情况称为“双跃点”,在这种情况下,一台计算机连接到另一台计算机,目的是为了连接到第三台计算机。

注意注意

即便与服务器建立连接的客户端应用程序(包括 SQL Server Management Studio)与正被查询的 SQL Server 实例同在一台计算机上,也必须对链接服务器进行委托配置。

客户端的要求

  • 经过 Windows 身份验证的用户登录名必须具有对 SQLSERVER1SQLSERVER2 进行访问的权限。 

  • 不能选择用户 Active Directory 属性,不得选择帐户是敏感帐户,不能被委托

  • 客户机必须使用 TCP/IP 或命名管道网络连接。

第一个/中间服务器 (SQLSERVER1) 的要求

  • 服务器必须具有域管理员注册的 SPN。

  • 必须托付运行 SQL Server 的帐户进行委托。

  • 服务器必须使用 TCP/IP 或命名管道网络连接。

  • 必须将第二个服务器 (SQLSERVER2) 添加为链接服务器。这可以通过运行 sp_addlinkedserver 存储过程来完成。例如:

    EXEC sp_addlinkedserver 'SQLSERVER2', N'SQL Server'
    
  • 必须对链接服务器登录名进行配置,以便进行自映射。这可以通过运行 sp_addlinkedsrvlogin 存储过程来完成。例如:

    EXEC sp_addlinkedsrvlogin 'SQLSERVER2', 'true'
    

第二个服务器 (SQLSERVER2) 的要求

  • 如果使用 TCP/IP 网络连接,则服务器必须具有由域管理员注册的 SPN。

  • 服务器必须使用 TCP/IP 或命名管道网络连接。