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

文章翻譯 文章翻譯
文章編號: 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 - 上次校閱: 2003年11月6日 - 版次: 3.2
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Standard Edition
關鍵字:?
kbmt kbbug kbfix kbsqlserv2000sp1fix KB294338 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:294338
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