FIX: xp_enumgroups 會產生存取違規時傳遞大型的參數

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

按一下這裡查看此文章的英文版本:294338
本文已封存。本文係以「現狀」提供且不會再更新。
Bug #: 351927 (SHILOH_BUGS)
徵狀
xp_enumgroups 提供本機的 Microsoft Windows NT 群組清單或所提供的參數指定的 Windows NT 網域中所定義的全域群組的清單。

如果大型的參數傳遞至 xp_enumgroups 預存程序,產生存取違規,連線會終止,請依照下列的錯誤郵件:
ODBC: 訊息 0 層級 19,狀態 1
SqlDumpExceptionHandler: 處理序 53 產生嚴重的例外狀況 c0000005 EXCEPTION_ACCESS_VIOLATION。SQL Server 正在終止此程序。

ODBC: 訊息 0 層級 20,狀態 1
預存函式 'xp_enumgroups' 程式庫 'xplog70.dll' 中產生存取違規。SQL Server 正在終止處理程序 53。

[中斷連線
如果當做參數傳入之字串的大小是大很多存取違規會停止 SQL Server 服務。發生的錯誤訊息會類似於:
[Microsoft][ODBC SQL Server 驅動程式][DBMSLPCN]ConnectionCheckForData (CheckforData())。
伺服器: msg 11、 層級 16,狀態 1、 行 0
一般網路錯誤。檢查您的網路文件。
解決方案
如果要解決這個問題,取得最新的 Service Pack,SQL Server 2000。如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
290211INF: 如何取得最新的 SQL Server 2000 Service Pack
狀況說明
Microsoft 已確認這是在 SQL Server 2000 中的問題。這個問題已經先在 SQL Server 2000 Service Pack 1 中獲得修正。
其他相關資訊
如果由 xp_enumgroups 所呼叫的字串的大小大於 228 位元組,只能就會發生這個問題。錯誤訊息的確切的文字可以依據傳遞字串的大小而有所不同。

例如,如果字串 229 位元組會顯示這個錯誤訊息:
伺服器: 訊息 3624,20,層級狀態 1,程序 xp_enumgroups 行 1

位置: dbccdll.cpp:516
運算式: pElem = = 查閱 (pElem-m_DLLName.m_str >)
SPID: 51
處理序 ID: 768

[中斷連線
重製行為的步驟

您可以使用下列著讓問題重現。

  • 若要造成了存取違規發生,使用此程式碼:
    xp_enumgroups 'Scanning directory [C:\*]Scanning directory [C:\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\*]Scanning directory [C:\cmdcons\*]Scanning directory [C:\*]'						
  • 會導致發生,並也導致 SQL Server 服務停止使用此程式碼的存取違規:
    xp_enumgroups 'Scanning directory [C:\*]Scanning directory [C:\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\*]Scanning directory [C:\cmdcons\*]Scanning directory [C:\*]Scanning directory [C:\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\APSETUP\*]Scanning directory [C:\*]Scanning directory [C:\cmdcons\*]Scanning directory [C:\*]'						

警告:本文為自動翻譯

內容

文章識別碼:294338 - 最後檢閱時間:01/16/2015 22:08:50 - 修訂: 3.2

Microsoft SQL Server 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB294338 KbMtzh
意見反應