Sql-Server

無法註冊 SPN,錯誤 0x80090350,狀態 4

  • November 19, 2018

這是我第一次嘗試配置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此處的資訊)。

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