Sql-Server

SQL Server - 註冊服務主體名稱而不重新啟動服務?

  • November 19, 2018

我有一個沒有註冊 SPN 的實時 SQL Server 2012 環境 - 這以前不是問題,因為不需要 Kerberos 身份驗證。但現在它是必需的。

我已經正確配置了所有內容,但是在進行了這些更改之後,我想確保 SQL Server 可以成功註冊 SPN——最好不要重新啟動服務,因為這是一個實時環境。

有沒有辦法做到這一點?

PS 我知道我可以手動註冊 SPN,但我想確保它們可以自動註冊。

快速回答

問題:

我已經正確配置了所有內容,但是在進行了這些更改之後,我想確保 SQL Server 可以成功註冊 SPN——最好不要重新啟動服務,因為這是一個實時環境。

有沒有辦法做到這一點?

回答:

不。

解釋

來自官方文件Register a Service Principal Name for Kerberos Connections

服務主體名稱 (SPN) 必須註冊到 Active Directory,它在 Windows 域中擔任密鑰分發中心的角色。SPN 在註冊後會映射到啟動 SQL Server 實例服務的 Windows 帳戶。如果 SPN 註冊未執行或失敗,則 Windows 安全層無法確定與 SPN 關聯的帳戶,並且不會使用 Kerberos 身份驗證。

如果伺服器無法自動註冊 SPN,則必須手動註冊 SPN。請參閱手動 SPN 註冊

在“自動 SPN 註冊”部分的下方,您可以找到

**當 SQL Server 數據庫引擎的實例啟動時,SQL Server 會嘗試為 SQL Server 服務註冊 SPN。**當實例停止時,SQL Server 會嘗試註銷 SPN。對於 TCP/IP 連接,SPN 以 MSSQLSvc/: 格式註冊。命名實例和預設實例都註冊為 MSSQLSvc,依靠值來區分實例。

概括

SQL Server 服務本質上是在服務啟動時自動註冊 SPN。如果您無法啟動 SQL Server 服務,則必須手動執行此任務。

注意事項

確保允許啟動 SQL Server 服務的服務帳戶讀取和寫入 SPN。

為此,您必須為 Active Directory 目錄服務中的 SQL Server 服務帳戶授予以下訪問控制設置:

  • 讀取 servicePrincipalName
  • 寫 servicePrincipalName

參考: 如何在 SQL Server 中使用 Kerberos 身份驗證(Microsoft 支持)

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