401 錯誤或者 「 使用者登入失敗 (null)。原因: 不相關聯的受信任的 SQL Server 連線 」 用戶端嘗試連線到 SMS 2003 管理點

文章翻譯 文章翻譯
文章編號: 832109 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

您安裝及設定新管理點的 Microsoft 系統管理伺服器 (SMS) 2003年之後,您可能會遇到下列一或多個下列問題:
  • 電腦會發現,並在 SMS 管理主控台中顯示為進階用戶端,但用戶端電腦上未安裝 SMS 用戶端軟體。
  • 電腦會發現,並在 SMS 管理主控台中顯示為進階用戶端,但發現的電腦上安裝標準的 SMS 用戶端軟體。
  • 現有的用戶端並不會報告廣告的狀態。
  • 在 [SMS 進階用戶端電腦上 CAS.log,SQLERROR 登入 SQL server,則會記錄下列訊息:
    '(空值)' 的使用者登入失敗。原因: 未受信任的 SQL Server 連線與關聯
  • 管理點的 IIS 記錄檔可能包含錯誤 401。
下列項目可以出現於 MP_GetAuth.log 檔案中的管理點。取決於是否也會安裝 SMS 用戶端,此記錄檔的可能是在 \%windir%\system32\CCM\Logs\ 資料夾或 [\SMS_CCM\Logs\] 資料夾中。(%windir% 是安裝作業系統所在的資料夾)。
<![LOG[CMPDBConnection::Init(): IDBInitialize::Initialize() failed with 0x80004005]LOG]!>
<![LOG[Raising event: [SMS_CodePage(437), SMS_LocaleID(1033)] instance of
MpEvent_ConnectDatabaseFailed {
      ClientID = "GUID:F4AB9DD6-362A-44B4-BAFA-6797AD71C79F";
      DatabaseName = "SMSDBname";
      DateTime = "20030919053031.203000+000";
      ErrorCode = "0x80004005";
      MachineName = "MPcomputername";
      ProcessID = 5124;
      ServerName = "SMSservername";
      SiteCode = "sitecode";
      ThreadID = 3512;
      Win32ErrorCode = 0;
};
]LOG]><time="00:30:31.219+000" date="09-19-2003" component="MP_GetAuth_ISAPI" context="Auth" 
type="1" thread="3512" file="event.cpp:522">
CMPDBConnection::Init(): IDBInitialize::Initialize() failed with 0x80040e4d $$<MP_GetAuth_ISAPI><Wed Feb 4 17:19:29.240 2004 Eastern Standard Time><thread=2664 (0xA68)>

發生的原因

管理點可能會無法連線到正在執行 Microsoft SQL Server 的伺服器。這些問題可能會發生的原因可能是以下其中一種:
  • 在 SQL 伺服器上,管理點並沒有正確的權限。
  • 以 SQL 服務主要名稱 (SPN) 註冊,發生問題。
  • 使用 Kerberos 或 「 網域名稱系統 (DNS) 通訊協定發生問題。

其他可行方案

如果要暫時略過這個問題,TCP 連線由切換到管理點與 SQL 伺服器之間的具名管道連線。這也可以用來測試問題是否使用 Kerberos 驗證時,會使用 TCP。

具名的管道使用 NTLM 驗證。如果從 TCP 切換到 「 具名管道操作無法解決問題,請執行 「 網路監視器 」 追蹤,以找出可能的網路連線問題的原因。如果啟用具名管道,管理點可以解決這個問題,它會指示 Kerberos 驗證失敗,這份文件中的疑難排解步驟,將會很有幫助診斷的原因。

若要啟用具名管道,下列管理點伺服器。按一下 啟動按一下 執行型別 cliconfg然後按一下 [確定].這會啟動 「 用戶端網路公用程式 」。在 [加入 SQL server NetBIOS 名稱 別名 具有索引標籤 具名的管道 選取此項目。這是預設設定。

在 SQL 伺服器上,執行 「 伺服器網路公用程式 」 並確定具名管道是通訊協定堆疊的頂端。管理點查詢 SQL 每隔 10 分鐘。將記錄項目會出現,指出在站台的管理點的數目。這表示連線成功。

其他相關資訊

如果要解決這些徵狀,請依照下列的步驟,則會顯示的順序。

驗證權限

若要疑難排解這些徵狀,請確認管理點具有正確的權限,以連線到 SQL 資料庫。若要這樣做,請依照下列步驟執行:
  1. 在管理點伺服器上,按一下 啟動按一下 執行型別 cmd然後按一下 [確定].如果您的 SMS 站台的標準安全性模式下執行,請前往步驟 4。如果您的 SMS 站台正在執行的進階的安全性模式中,請進行步驟 2。
  2. 如果您的 SMS 站台正在執行進階的安全性,啟動新的命令提示字元視窗在本機 system 帳戶下執行。若要這樣做,請在命令提示字元中輸入下列命令,然後按 ENTER 鍵:
    行高FutureTime 互動式 / cmd
    在您指定時,新的 [命令提示字元] 視窗會開啟 Svchost.exe 下執行。

    附註 FutureTime 可以是任何仍晚於目前的時間,為 24 小時制格式的時間。
  3. 在命令提示字元中,輸入下列命令,然後再按 ENTER 鍵:
    osql-S SQLServer -d SMSdbname -E
    附註 SQLServer 是的執行 SQL Server 的伺服器名稱, SMSdbname 是您的 SMS 站台的 SQL 資料庫的名稱。

    如果這個命令成功,您的管理點會有正確的權限到 SQL 資料庫。指令成功時如果 1 > 提示就會傳回。型別 結束然後按下 ENTER,以返回命令提示字元。如果您收到下列錯誤訊息,請前往步驟 4:
    '(空值)' 的使用者登入失敗。原因: 未受信任的 SQL 與關聯伺服器連線。
  4. 如果您在步驟 3 中收到 「 登入失敗 」 錯誤訊息所述,重複執行命令,但使用完全合格網域名稱 (FQDN)。例如,輸入:
    osql-S SQLServer.europe.corp.microsoft.com -d SMSdbname -E
    如果命令沒有成功,請檢視管理點的電腦所在網域的 DNS 設定。
  5. 如果命令仍然失敗,去查看 MSSQLServer 服務是否正在使用的使用者帳戶登入,請變更服務使用本機系統帳戶登入服務內容] 索引標籤上,然後再重新執行命令。如果您必須使用的使用者帳戶執行服務,請確定您的使用者帳戶已加入至網域系統管理員群組。您也可依照下面的文件的 「 Microsoft 知識庫 」 中的文中的步驟:
    829868 與遠端的 SQL 系統管理伺服器 2003年進階安全性站台不是連接至 SQL Server

其他疑難排解

  1. 啟動 「 SQL 服務帳戶,可能不會產生適當的服務主要名稱 (SPN) 屬性。如果要解決這個問題,您必須以手動方式建立的完整格式的網域名稱 (FQDN) 和 NetBIOS SPN 的項目。若要這樣做,您可以使用從 「 Windows 2000 伺服器資源工具箱 」 的 「 SetSPN 」 公用程式。如果要下載 「 SetSPN 」 公用程式,請造訪下列 Microsoft 網站:
    http://www.microsoft.com/downloads/details.aspx?FamilyID=5fd831fd-ab77-46a3-9cfe-ff01d29e5c46&DisplayLang=en
    您必須位於 SQL Server 的網域中的電腦上執行 SetSPN 公用程式。您必須使用網域系統管理員認證。判斷 SQL 服務執行為網域帳戶或本機電腦帳戶。若要使用 「 SetSPN 」 公用程式手動建立適當的 Spn,請依照下列步驟執行:

    「 SQL 服務與使用者帳戶上啟動時
    • 若要在命令提示字元視窗中建立之 FQDN SPN,請鍵入下列命令:
      setspn-MSSQLSvc /SqlHostname.mydomain.com: 1433 SqlServiceAccount
    • 若要在 [命令] 視窗建立 NetBIOS SPN,請鍵入下列命令:
      setspn-MSSQLSvc /SqlHostname: 1433 SqlServiceAccount
    在本機 System 帳戶下啟動 「 SQL 服務時

    如果 SQL Server 會在 [本機系統帳戶下執行,您不必以手動方式設定為 SQL Server 的 SPN。當 SQL Server 啟動時,會自動建立 「 SPN 和 SQL 服務被停止時,會移除。如果 SQL Server 會在 [網域使用者帳戶下執行,您必須手動設定 SPN。

    SPN 移除

    重複的 SPN,正在執行 SQL Server 的電腦可能會造成連線問題。下列程序會從 SQL Server 中移除任何現有的 Spn,並加入新的 SPN:
    1. 停止 MSSQL 服務。
    2. 執行 SETSPN-L 電腦名稱 若要列出所有的 Spn 指令。輸出通常會類似下列項目:
      MSSQLSvc/MySQLServer dasaccount1 
      MSSQLSvc/MySQLServer:1433 
      MSSQLSvc/MySQLServer.MyDomain.com dasaccount1 MSSQLSvc/MySQLServer.MyDomain.com:1433 
      
      如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
      319723如何使用 SQL Server 中的 Kerberos 驗證

      MSSQL 服務在本機 System 帳戶下執行時,如果 MSSQL 服務停止時,會移除 SPN。因此,如果 SPN 所示的輸出 SETSPN-L 指令,它是重複的 SPN。當您執行時,如果 MSSQL 服務是在 [網域使用者帳戶] 下,仍列 SPN SETSPN-L 命令。因此,您無法判斷是否有重複的 SPN。在這兩種情況下,若要確定 SPN 不重複,移除並取代 SPN,透過 1i 步驟 1c 中所述。
    3. 如果有任何含 MSSQLSvc 的任何項目,請使用 SETSPN-D 若要移除的項目] 指令。例如,鍵入下列內容:
      SETSPN –D MSSQLSvc/MySQLServer DAS 帳戶 SETSPN-D MSSQLSvc /MySQLServer.MyDomain.comDAS 帳戶>
    4. 執行 SETSPN-L 電腦名稱 以此命令來確保沒有 MSSQLSvc 的清單會出現。
    5. 如果 MSSQL 服務會在 [本機系統帳戶下執行,請確定 SQL Server 啟動帳戶是本機系統帳戶。您可以設定這項設定 安全性 在 [定位點 屬性 SQL Server 中的伺服器] 對話方塊。
    6. 如果 MSSQL 服務是以網域使用者帳戶,註冊 SPN,藉由使用 SETSPN-A 已說明過先前的命令。
    7. 重新啟動 MSSQL 服務。
    8. 複寫更新之後 servicePrincipalName 在任何網域帳戶,請確認 Spn 已經正確登錄。若要這樣做,請執行下列命令:
      SETSPN-L 電腦名稱
    9. 如果已正確登錄 Spn,測試 SMS 連線使用中的 「 驗證權限 」 一節的方法。
  2. 在每個主要站台,請確定 [SMS_SitetoSQLConnection] 安全群組包含的電腦帳戶,或 SMS 服務帳戶對於所有的子系伺服器報告的主要站台。通常,這些帳戶會加入到 SMS_SitetoSQLConnection 的安全性群組安裝站台時。如果安裝程式無法將此帳戶,SMS 管理主控台會記錄下列站台狀態訊息:
    4908-站台元件管理員無法將電腦帳戶"%1"to SQL 存取群組中"%2在 「 SQL Server 電腦上"%3".
  3. Kerberos 票證快取可能需要重設。使用 Kerbtray 工具從 Windows 2000 Server Resource Kit 清除現有的 Kerberos 票證快取。如果要下載的 Kerbtray 工具,請造訪下列 Microsoft 網站:如需有關如何使用 Kerbtray 工具的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
    232179在 Windows 2000 中的 Kerberos 管理
  4. 請確認管理點伺服器的 TCP/IP 內容中為該網域的 DNS 伺服器會先列出。
  5. 目標網域的 FQDN 必須列在頂端的尾碼搜尋清單,在管理點伺服器。若要變更尾碼搜尋清單,請依照下列步驟執行:
    1. 按一下 啟動按一下 執行型別 然後按一下 [確定].
    2. 以滑鼠右鍵按一下您想要連線,變更,然後再按一下 屬性.
    3. 連接名稱屬性 對話方塊中選取 網際網路通訊協定 (TCP/IP) 在下 這個連線使用下列項目然後按一下 屬性.
    4. 在上 一般 索引標籤上按一下 進階然後按一下 DNS 索引標籤。
    5. 按一下 附加這些 DNS 尾碼 (依順序)按一下 [目標網域中,並按一下捲動箭號,然後將目標網域移到清單頂端。
    6. 按一下 [確定] 兩次,然後再按一下 關閉.

    =====

    附註: 這個問題只能被使用的系統管理伺服器 2003年注意到,並不會影響系統中心 Configuration Manager 2007。

?考

如需有關如何執行與遠端 SQL 伺服器的 SMS 進階安全性的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
829868與遠端的 SQL 系統管理伺服器 2003年進階安全性站台不是連接至 SQL Server
如需有關如何從 Active Directory 擷取 Spn 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
298718如何從目錄擷取 Spn
如需有關 Kerberos 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
266080Kerberos 常見問題的解答
326985 如何疑難排解與 Kerberos 相關的問題,在 IIS 中

屬性

文章編號: 832109 - 上次校閱: 2013年7月24日 - 版次: 14.0
這篇文章中的資訊適用於:
  • Microsoft Systems Management Server 2003 Enterprise Edition
關鍵字:?
kbsoftwaredist kbclient kbsecurity kbinfo kbmt KB832109 KbMtzh
機器翻譯
請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。
按一下這裡查看此文章的英文版本:832109
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com