設定委派之連結的伺服器

SQL Server 和 Windows 可以設定轉送已驗證的 Windows 使用者認證,讓連接到 SQL Server 執行個體的用戶端可以連接到另一個 SQL Server 執行個體。此設置也稱為「委派」。在委派下,Windows 使用者在與另一個執行個體通訊時,是使用 Windows 驗證「模擬」該使用者,來連接 SQL Server 執行個體。當針對特定連結伺服器的特定登入使用自我對應時,分散式查詢將需要安全性帳戶委派。

委派需求

為了說明委派的需求,假設有以下狀況:使用者登入用戶端電腦,此電腦連接到執行 SQL ServerSQLSERVER1 執行個體的伺服器。使用者想要針對連結伺服器 SQLSERVER2 上的資料庫執行分散式查詢。一部電腦連接到另一部電腦以便連接到第三部電腦的狀況,稱為 double hop。

[!附註]

即使建立連接到伺服器的用戶端應用程式 (包括 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 或具名管道網路連接性。