如何疑難排解 SQL Server 8198 錯誤

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

在此頁中

結論

本篇文章包含您可用來疑難排解 8198 錯誤的指導方針及指示。然而,本篇文章並未包含完整的清單來說明可能造成 8198 錯誤的原因。同時,有些問題可能特別針對您的環境。

首先,本篇文章討論可能發生 8198 錯誤的時機。接著,本篇文章將提供一些有關 xp_logininfo 系統預存程序的資訊。然後本篇文章將告訴您如何疑難排解 8198 錯誤。



發生 8198 錯誤的可能時機

當您在 SQL Server 的執行個體上執行動作時 (此執行個體需要 SQL Server 解析 Microsoft Windows NT 網域使用者帳戶認證),您可能會收到類似下列其中一則錯誤訊息。

錯誤訊息 1

Server:Msg 8198, Level 16, State XX, Procedure <Stored Procedure Name>, Line <line Number>
無法獲得 Windows NT 群組/使用者的資訊 '<網域\帳戶名稱>'。



錯誤訊息 2

ODBC 錯誤 8198 (42000) 無法獲得 Windows NT 群組/使用者的 '<網域\帳戶名稱>' 資訊。



錯誤訊息 3

工作執行失敗。無法判定工作 <工作名稱> 的擁有者 (<網域\帳戶>) 擁有伺服器存取權限 (原因:無法獲得 Windows NT 群組/使用者 '<網域\帳戶名稱>' 資訊。[SQLSTATE 42000] (錯誤 8198))。


SQL Server 使用 xp_logininfo 系統預存程序來解析 Windows NT 網域使用者帳戶認證。這裡有份常見案例的清單,您可在其中發現因 xp_logininfo 系統預存程序失敗而造成 8198 錯誤的案例。
  • 當您使用 xp_sendmail 延伸預存程序。
  • 當您設定複寫。
  • 當您執行 SQL Server 代理程式工作。



有關 Xp_logininfo 系統預存程序的資訊

Xp_logininfo 是系統預存程序。xp_logininfo 系統預存程序不是 SQL Server 延伸預存程序,和其名稱相反。xp_logininfo 系統預存程序會叫用某些 Microsoft Windows API 呼叫以擷取有關 Windows 網域及 Windows 使用者帳戶的資訊。

根據造成錯誤的 Windows API 呼叫,xp_logininfo 系統預存程序會回傳 8198 錯誤及相關 SQL Server 狀態值。SQL Server 狀態值可指出造成失敗的原因。

即使使用者沒有明確的這樣做,SQL Server 仍會執行 xp_logininfo 系統預存程序來擷取有關 Windows 網域及使用者帳戶的資訊。因此,如果您收到 8198 錯誤訊息,且此錯誤訊息指出 xp_logininfo 系統預存程序為程序之一,您必須使用 SQL Profiler 來追蹤及疑難排解發生失敗的真正原因。

每次 xp_logininfo 系統預存程序失敗時, 8198 錯誤及相關 SQL Server 狀態就會顯示。即使使用者並沒有明確的執行 xp_logininfo 系統預存程序,SQL Server 在需要時會使用 xp_logininfo 系統預存程序來擷取有關 Windows 網域及使用者帳戶的資訊。在下列錯誤訊息中,XX 值表示 SQL Server 在錯誤發生時的狀態。

Server:Msg 8198, Level 16, State XX, Procedure <Stored Procedure Name>, Line <line Number>
無法獲得 Windows NT 群組/使用者的資訊 '<網域\帳戶名稱>'。


下列表格列出一些當 8198 錯誤發生時,您會在錯誤訊息中看到的一般 SQL Server 狀態值。

摺疊此表格展開此表格
SQL Server 狀態可能原因
21xp_logininfo 延伸預存程序並不是在執行 Microsoft Windows NT 作業系統的電腦中執行。
用以在 Windows 帳戶名稱中分隔 Windows 網域名稱及帳戶名稱的反斜線字元 (\) 遺失。
22當 SQL Server 查詢 Windows 作業系統以擷取 Windows 帳戶名稱的資訊時發生錯誤。
24當 SQL Server 引擎查詢 Windows 作業系統以擷取 Windows 帳戶名稱的資訊時,存取遭到拒絕。
25當 SQL Server 引擎查詢 Windows 作業系統以擷取 Windows 帳戶名稱的資訊時,發生錯誤。
26當 SQL Server 引擎查詢 Windows 作業系統以擷取本機 Windows 群組 (其中 Windows 使用者是成員) 的資訊時,發生錯誤 (Windows 使用者指的是安全性內容帳戶)。
27當 SQL Server 引擎查詢 Windows 作業系統以擷取本機 Windows 群組 (其中 Windows 使用者是成員) 的資訊時,發生錯誤 (Windows 使用者指的是安全性內容帳戶)。


疑難排解 8198 錯誤訊息

因為 SQL Server 會使用 xp_logininfo 系統預存程序來解析 Windows NT 網域使用者帳戶認證,Microsoft 建議您使用 SQL Profiler 來追?錯誤訊息發生的真正原因。

這個清單列出一些可能造成 8198 錯誤發生的原因。
  • 網路問題。
  • Windows 本機群組或 Windows 全域群組名稱的問題。
  • EVERYONE 群組的衝突。
  • xp_sendmail 延伸預存程序的失敗。
  • SQL Server 代理程式工作失敗。
  • 複寫設定失敗。
下列提供更多與各個問題相關的資訊,並提供各問題的建議解決方法。

網路問題

如果 SQL Server 登入帳戶的網域,與用來執行預存程序的 Windows 帳戶所在的網域不同,您會收到一個 8198 錯誤訊息。如果要解決這個問題,請確定下列所有情況均成立:
  • 兩個 Windows 網域之間存在信任關係。
  • 建立信任關係所需的 TCP/IP 連接埠,已經在兩個 Windows 網域之間啟用。

    注意 儘管兩個網域之間存在信任關係,如果 Windows 網域相關的連接埠沒有啟用,您仍會收到 8198 錯誤。
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
179442 如何設定網域和信任的防火牆
為確保上述的情況正確,試看看您能否指定網域中電腦內的資料夾權限,給另一個不同網域的使用者。如果您不能指定權限,有可能是網路相關問題。

注意 如果您使用 Windows 檔案總管指定資料夾權限給另一個網域的使用者,請確認您很明確地從網域清單中選取其他網域的名稱。



Windows 本機群組或 Windows 全域群組名稱的問題

當您使用 Windows 本機群組或 Windows 全域群組的 Windows 使用者執行預存程序,但 Windows 本機群組或 Windows 全域群組與下列任一名稱相同時,您將會收到 8198 錯誤訊息:
  • Windows 網域名稱。
  • 電腦名稱。
  • 另一個和網域有信任關係的 Windows 網域。

如果需要替代的解決方案,請執行下列其中一種工作。
  • 變更 Windows 本機群組名稱或 Windows 全域群組名稱。
  • 從 Windows 本機網域或 Windows 全域網域中,將與 Windows 網域中具有相同名稱的使用者移除。
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
233161 BUG:Xp_logininfo returns error 8198


如果建立 Windows 本機群組或 Windows 全域群組的使用者,具有與保留群組 (EVERYONE) 相同的名稱時,您會收到 8198 錯誤訊息。名稱衝突會造成 Windows 帳戶認證失敗。

保留群組名稱 (EVERYONE) 沒有出現在 [網域使用者管理員] 或在 Windows 管理工具的 [電腦管理] 群組清單中。然而,如果您用手動方式建立一個名為 EVERYONE 的本機群組或全域網域群組,EVERYONE 群組會出現在 [網域使用者管理員] 的群組清單中。

如果要解決這個問題,請刪除您手動建立的 EVERYONE 群組。


xp_sendmail 延伸預存程序失敗

如果執行 xp_sendmail 延伸預存程序的用戶端電腦和 SQL Server 電腦不在同一個網域,且此兩個網域之間沒有建立信任關係,xp_sendmail 可能失敗並回傳 8198 錯誤。

如果要解決這個問題,請執行下列其中一種工作。
  • 在用戶端的 Windows 網域,建立一個與 SQL Server 啟動帳戶有著相同使用者名稱及密碼的網域使用者。
  • 在 SQL Server 用戶端 Windows 網域中的 Windows 2000 前版相容性存取群組裡,新增 SQL Server 啟動帳戶。

    如需有關如何使用「Windows 2000 前版相容性存取群組」的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    303973 How To Add Users to the Pre-Windows 2000 Compatible Access Group

SQL Server 代理程式工作失敗

如果通過 Microsoft Windows NT 驗證之使用者的 SQL Server 代理程式工作失敗,您將會收到 8198 錯誤訊息。當使用 Microsoft Windows 2000 作業系統的電腦執行 SQL Server 時,且電腦的網域中並沒有 Windows 2000 前版相容性存取群組,就會出現這個問題。

如需有關此問題及可用替代解決方案的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
241643 PRB:8198 error message returned from job owned by Windows NT Authenticated User


複寫設定失敗

當您在 SQL Server 執行個體設定複寫時,複寫代理程式可能沒有啟動。您可能收到 8198 錯誤訊息。
如果複寫代理程式沒有啟動,請檢查 SQL Server 代理程式工作的歷史記錄 (此歷史紀錄為針對複寫代理程式工作而建立)。您也許會在工作歷史記錄中發現 8198 錯誤。

下面的清單說明造成這個問題的兩種可能原因。
  • SQL Server 服務所使用的帳戶,在 Windows 網域中沒有足夠的系統管理認證。在這個情況下,xp_logininfo 系統預存程序是藉由使用在 SQL Server 服務的安全性內容來執行。因為帳戶沒有足夠的系統管理認證來列舉網域使用者的內容,所以 xp_logininfo 系統預存程序會失敗,而您會收到 8198 錯誤訊息。

    如果要解決這個問題,把 SQL Server 服務的啟動帳戶改為 Windows 網域帳戶。
  • 在 Publisher 和 Subscriber 上的 SQL Server 服務和 SQL Server 代理程式服務使用不同 Windows 網域的安全性內容。

    如果要解決這個問題,請使用下列其中一種方法。
    • 用相同的 Windows 網域使用者帳戶來執行 SQL Server 服務和 SQL Server 代理程式服務。
    • 在 Publisher 和 Subscriber 建立一個有相同使用者名稱及密碼的 Windows 網域使用者帳戶。

?考

如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
830596 FIX:You receive an error message when the xp_logininfo extended stored procedure runs
241643 PRB:8198 error message returned from job owned by Windows NT Authenticated User
233161 BUG:Xp_logininfo returns error 8198


如需有關 xp_sendmail 延伸預存程序的詳細資訊,請造訪下列 Microsoft 網站:

xp_sendmail


如需有關 xp_logininfo 系統預存程序的詳細資訊,請造訪下列 Microsoft 網站:

xp_logininfo


屬性

文章編號: 834124 - 上次校閱: 2007年4月25日 - 版次: 1.4
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Standard Edition
關鍵字:?
kbhowtomaster kbstoredproc kberrmsg kbsecurity kbsqlservmail kbuser kbtsql kbquery kblogin kbauthentication kbservice kbserver kbdatabase kbsysadmin kbinfo KB834124
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