您目前已離線,請等候您的網際網路重新連線

當 SQL Server 服務帳戶是網域使用者時,收到 「 警告 SuperSocket 資訊 」 警告資訊

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:303411
錯誤 #: 232774 (SHILOH_BUGS)
徵狀
正在執行的電腦上的 SQL Server 啟動時執行Microsoft SQL Server 2000年或 Microsoft SQL Server 2005年時,SQL Server 程式一直嘗試註冊Active Directory 中的虛擬伺服器。事件日誌中,可能會記錄下列事件:

SuperSocket 資訊: (SpnRegister): 錯誤 8344 SuperSocket 資訊: (SPNRegister): 錯誤 1355 SuperSocket 資訊: SpnUnRegister(): 錯誤 8344。

附註錯誤 1355年等於 ERROR_NO_SUCH_DOMAIN。錯誤 8344 相當於執行註冊的作業的權限不足。這會顯示一則警告的SPNRegister函式,而是SpnUnRegister函式產生錯誤。

此訊息不是錯誤訊息。這段文字只是SQL Server 無法註冊服務主要名稱 (SPN) 時發出警告。這表示將會使用安全性機制Microsoft Windows NT Challenge\Response 」 (NTLM) 驗證,而不是Kerberos 驗證。

這些訊息應該只考慮問題如果您的 SQL Server 安裝需要 Kerberos 驗證,或網路的安全性設定禁止後援至上 NTLM 交涉。否則,可以放心地忽略這些訊息。
發生的原因
因為,通常會出現訊息 「 SQL Server 服務以 「 網域使用者帳戶執行沒有必要的權限註冊的 Spn。您可以啟用 Microsoft Windows 2000 Service Pack 3 (SP3),在伺服器叢集上的 Kerberos 驗證。如需關於如何這樣做,請指示請參閱 「 Microsoft 知識庫 」 中下列文件:
319723 支援 SQL Server 2000 Kerberos 的相關資訊,包括伺服器叢集上的 SQL Server 虛擬伺服器
解決方案
您也可以編輯在 Active Directory 目錄服務以啟用 [讀取] servicePrincipalName 權限的帳戶的存取控制設定權限和 SQL 服務帳號的寫入 servicePrincipalName 權限。

警告如果您使用 [編輯使用中目錄服務介面 (ADSI) 嵌入式管理單元、 LDP 公用程式或任何其他 LDAP 版本 3 用戶端,而且您錯誤地修改 Active Directory 物件的屬性,您可能會造成嚴重的問題。這些問題可能會要求您重新安裝 Microsoft Windows 2000 Server,Microsoft Windows Server 2003、 Microsoft Exchange 2000 Server、 Microsoft Exchange Server 2003 中,或同時 Windows 和交換。Microsoft 不保證不當修改 [Active Directory 物件的屬性所造成的問題可以獲得解決。修改這些屬性,請自行承擔風險。
其他可行方案
若要解決這些類型的訊息,並讓 SQL Server 服務能夠動態地建立您的 SQL Server 執行個體的 Spn,請詢問您的網域系統管理員,才能新增適當的權限和使用者權限給 SQL Server 啟動帳戶。

啟用 SQL Server 服務帳戶能夠正確地建立 Spn,在啟動時,請依照下列步驟執行:
  1. 按一下 啟動按一下 執行型別 Adsiedit.msc然後按一下 [確定].
  2. ADSI 編輯 視窗中,展開 網域 [網域名稱]展開 DC = RootDomainName展開 CN = Users以滑鼠右鍵按一下 CN =AccountName然後按一下 屬性.

    注意
    • 網域名稱 表示網域名稱。
    • RootDomainName 為根網域名稱的預留位置。
    • AccountName 代表您指定要啟動 SQL Server 服務帳戶。
    • 如果您已指定本機系統來啟動 SQL Server 服務, AccountName 代表您用來登入 Microsoft Windows 的帳戶。
    • 如果您已指定網域使用者帳戶的 SQL Server 服務, AccountName 表示網域使用者帳戶。
  3. CN =AccountName 屬性 對話方塊中,按一下 安全性 索引標籤。
  4. 在上 安全性 索引標籤上按一下 進階.
  5. 進階的安全性設定 對話方塊,請確定自我使用者被列在 使用權限項目.如果自我使用者並未列出,請按一下 新增然後再新增 [ SELF使用者。
  6. 在下 使用權限項目按一下 自我然後按一下 編輯.
  7. 使用權限項目 對話方塊中,按一下 屬性 索引標籤。
  8. 在上 屬性 索引標籤上按一下 只有這個物件套用在 列出,並確蓋下所選取的下列權限 權限:
    • 讀取 servicePrincipalName
    • 撰寫 servicePrincipalName
  9. 按一下 [確定] 三次,然後再關閉 ADSI 編輯 視窗。
這項程序的相關說明,請連絡 Active Directory 產品支援服務。若您連絡產品支援服務,請參閱此 Microsoft 知識庫 」 文件。

當您執行這項替代解決方案時,就會消除用於新安裝或安裝有修改的 TCP/IP 連接埠或網域名稱的 SPN 問題。

重要我們建議您不要授予 WriteServicePrincipalName 加 「 SQL 服務 」 帳戶的從右至中,當下列情況皆成立時:
  • 有多個網域控制站。
  • SQL Server 已叢集化。
在這個案例中,因為在 Active Directory 複寫延遲可能會被刪除的 SPN,SQL Server。這可能會造成 SQL Server 執行個體的連線問題。

假設您具有下列:
  • SQL 的虛擬執行個體,名為 Sqlcluster,兩個節點: 節點 A 和節點 b。
  • 節點 A 經過網域控制站 A 和節點 B 經過網域控制站 b。


下列可能會發生:
  1. Sqlcluster 執行個體正執行於節點 A,並在啟動時登錄在網域控制站 A SQL SPN,往上...
  2. Sqlcluster 執行個體容錯移轉至節點 B 當節點 A 是正常關機。
  3. Sqlcluster 執行個體取消註冊的 SPN,從網域控制站 A,節點 a 上的關閉程序
  4. SPN 從網域控制站 A 中移除,但變更尚未抄寫至網域控制站 b。
  5. 當啟動節點 B,Sqlcluster 執行個體會嘗試向 SQL SPN 註冊網域控制站 b。後來,SPN 是否仍然存在節點 B 不會註冊 SPN。
  6. 請稍候,網域控制站 A 會複寫到網域控制站 B (從步驟 3) SPN 刪除 Active Directory 複寫的一部份。最終結果是任何有效的 SPN 存在的網域中的 SQL 執行個體,並因此片 Sqlcluster 執行個體的連線問題。

附註在 SQL Server 2012年修正這個問題。

狀況說明
Microsoft 已確認這是 SQL Server 2000年和 SQL Server 2005 中的有問題。
参考
如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
235529Kerberos 支援到 Windows 2000 為基礎的伺服器叢集
269229 如何以手動方式重新建立叢集服務帳戶

警告:本文為自動翻譯

內容

文章識別碼:303411 - 最後檢閱時間:04/07/2013 18:39:00 - 修訂: 2.0

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Workgroup Edition, Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition

  • kbbug kbpending kbmt KB303411 KbMtzh
意見反應
eateElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">