Sql-Server

NTLM 與 Kerberos 身份驗證 - 問題

  • February 5, 2019

我們有 4 台伺服器,都是同一個域的成員:

1. SQL 2012 on Windows Server 2016
2. SQL 2012 on Windows Server 2012
3. SQL 2017 on Windows Server 2016
4. SQL 2017 on Windows Server 2016

我注意到在前兩台伺服器上,域使用者僅使用 NTLM 進行連接(sys.dm_exec_connections DMV,auth_scheme 列)

研究如何將 auth_scheme 更改為 Kerberos,了解到必須將“寫入 ServicePrincipalName”權限授予 Active Directory 服務介面中的 SQL Server 服務帳戶(ADSI 編輯)

Right now privilege "Write ServicePrincipalName" is NOT granted to the service account

在授予 SQL 服務帳戶該權限之前,我決定檢查第 3 台和第 4 台伺服器上的 auth_scheme,並發現域使用者實際上是使用 Kerberos auth_scheme 連接到這些伺服器

問題是 - 當 SQL 服務帳戶的“Write ServicePrincipalName”權限被關閉時,域使用者如何使用 Kerberos 身份驗證連接到伺服器 3 和 4,並同時作為 NTLM 連接到伺服器 1 和 2?

某處是否有一些設置,這使得伺服器 1,2 和 3,4 以及使用者如何連接到它們之間有所不同?

Kerberos 身份驗證要求您為服務帳戶執行的服務註冊服務主體名稱,以執行 Kerberos 身份驗證工作所需的交換。

您可以使用 Microsoft 的Kerberos 配置管理器輕鬆驗證您的 SPN 。一旦您驗證並修復了任何 SPN 差異,請確認您的使用者是否在雙跳方案中進行連接。如果不是,那麼 NTLM 可能是正確的機制。查看此部落格文章以確定您的使用者是否應該使用 NTLM 或 Kerberos。

引用自:https://dba.stackexchange.com/questions/228891