創建連結伺服器時登錄失敗
我想在僅安裝了 SQL Management Studio 的開發伺服器中創建數據庫伺服器 B 到數據庫伺服器 A 的連結伺服器。所有三台伺服器都在同一個域中。錯誤資訊
使用者“NT AUTHORITY\ANONYMOUS LOGON”登錄失敗。(Microsoft SQL Server,錯誤:18456)
當我想創建連結伺服器時。
我不明白為什麼,因為我成功地在另一台伺服器上創建了連結伺服器,實際上安裝了 SQL 伺服器,但我認為這與它沒有任何關係。
我試著照顧這個問題,但我無法解決它。
更新
https://www.sqlservercentral.com/blogs/how-to-resolve-user-error-in-kerberos-configuration-manager
您應該編寫出 Linked Server 對象的腳本並將該腳本添加到您的文章中,這樣我們就有更多工作要做。
當我看到錯誤消息時:
使用者“NT AUTHORITY\ANONYMOUS LOGON”登錄失敗。(Microsoft SQL Server,錯誤:18456)
而且我知道至少有 3 台伺服器在執行(正如您提到的“所有三台伺服器都在同一個域中”),然後我的第一個想法是檢查正確的SPN設置和Kerberos 委派。在前面提到的 SPN 聯機叢書中,在連結伺服器和委派部分下,它甚至提到“與連結伺服器的委派需要 Kerberos 身份驗證。 ”。
我過去曾多次遇到此錯誤,因為我的 SPN 設置不正確,或者因為我試圖在其間使用連結伺服器的兩台伺服器之間未配置 Kerberos 委派。委派在這些伺服器之間建立信任,這樣當您從第三台伺服器連接到伺服器時,您就可以
A
從伺服器上的連結伺服器訪問伺服器。這稱為雙躍點,並且必須通過委派建立信任,以允許 Kerberos 連接從伺服器到伺服器一直通過您的 Windows 身份驗證,作為安全措施。B``B``C``C``A
以上假設在您的連結伺服器對像中,在安全部分下,您選擇了“使用登錄的目前安全上下文進行製作”,它試圖傳遞目前經過身份驗證的使用者的安全上下文。
或者,如果您將其更改為“使用此安全上下文進行”並輸入有權訪問 server 的 SQL 登錄(而不是 Windows 身份驗證登錄)的憑據
A
,那麼這也可以解決您的問題。因為現在,它不再嘗試傳遞目前經過身份驗證的使用者的安全上下文,而是使用指定的 SQL 登錄之一。從安全形度來看,這使其不再是雙跳。該解決方案的缺點是您必須確保您選擇的 SQL 登錄在
A
支持連結伺服器的所有案例的伺服器上具有適當的訪問權限。使用該連結伺服器的任何人現在都將A
作為您在連結伺服器對像中輸入憑據的 SQL 登錄名訪問伺服器。您必須小心在伺服器上的 SQL 登錄權限的過度和不足之間劃清界限A
。如果您想使用正確的 Kerberos 委派配置的第一個選項並需要任何其他幫助,您可以通過在ServerFault上發布來找到更多知識淵博的資訊,因為這更多的是基礎架構/安全主題,而不是數據庫主題。