Sql-Server
無法註冊 SPN,錯誤 0x80090350,狀態 4
這是我第一次嘗試配置kerberos。我需要它用於 SQL Server。
注意事項
- 我在 Windows 2008 R2 伺服器上執行 SQL Server 2008 R2。
- 我有一個用於 SQL Server 2008 R2 的 Active Directory 帳戶。
- 該帳戶被委派給 kerberos。
- 該帳戶配置為啟動 SQL Server 服務。這沒有問題。
- SPN 為 netbios 和 FQDN 註冊為電腦名,並且
computername:1433.
- 為伺服器和帳戶註冊了相同的 SPNS。
我的意思是,如果我這樣做
setspn -L domain\serviceaccount
要麼
setsqpn -Q MSSSQLSvc/Server.domain.local
,我明白了
MSSQLSvc/Server:1433 MSSQLSvc/Server.domain.local MSSQLSvc/Server.domain.local:1433
當我執行此查詢時:
select auth_scheme from sys.dm_exec_connections where session_id=@@spid
…結果是NTLM。
我從另一台伺服器執行此查詢,連接到我需要在其上使用 Kerberos 的 SQL Server。
當我重新啟動 SQL Server 服務時,我在日誌中看到此錯誤:
SQL Server 網路介面庫無法為 SQL Server 服務註冊服務主體名稱 (SPN)。
Error: 0x80090350, state: 4.
未能註冊 SPN 可能會導致集成身份驗證回退到 NTLM 而不是 Kerberos。這是一條情報資訊。僅當身份驗證策略需要 Kerberos 身份驗證時,才需要進一步操作。知道我錯過了什麼嗎?
您看到的錯誤消息 0x80090350 定義為:
c:\util\Err>err 0x80090350 # for hex 0x80090350 / decimal -2146892976 : SEC_E_DOWNGRADE_DETECTED winerror.h # The system detected a possible attempt to compromise # security. Please ensure that you can contact the server # that authenticated you. # 1 matches found for "0x80090350"
我正在使用Exchange Error Lookup Tool進行查找。
根據這篇文章的資訊,這個錯誤通常是由一個帳戶(間接或直接)成為大量組的成員引起的MaxTokenSize問題引起的。
我會考慮的另一種可能性是存在重複的 SPN。您可以通過執行來確定 Windows 認為哪些 SPN 是重複的
setspn -X -F
(此處的資訊)。