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

SQL Server 與課程或類似的技術可能會造成非預期的行為

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:920925
結論
Microsoft 支援服務遇到許多協力廠商的產品,用來提供其他功能,Microsoft SQL Server 的課程。這些通常稽核功能。沒有憑證的處理序的 Microsoft 應用程式的第三方課程。因此,一般而言,Microsoft 強烈阻礙重覆使用的課程。

使用課程或類似的技術變更的 SQL Server 行為的功能可能會造成下列問題:
  • 效能問題
  • 不正確的結果
  • 磁碟和記憶體損毀
  • SQL Server 回應的遺失。
  • 未預期的處理程序終止
  • 無法使用標準的診斷,例如fn_get_sql函式和DBCC INPUTBUFFER命令
當您使用非 Microsoft 軟體,例如連結的伺服器、 延伸的程序或在 SQL Server 處理序內的 COM 物件時,您可能遭遇這些相同的問題。課程會從 DBA 檢視隱藏的。若要找出 detour,您必須使用所述的技巧 〈 其他資訊 〉 一節。連結的伺服器,COM 物件延伸程序有明確註冊,並定義介面。

注意由於隱藏的課程的本質,以及發行介面缺乏,Microsoft 並不提供使用課程或類似的技術的協力廠商功能的支援服務。協力廠商會負責自己的程式碼的支援,如同它是負責自己的連結伺服器或其他 sanctioned 部署。

它是常見的做法,在疑難排解要求您停用非必要的工作,並停用或移除協力廠商元件和其他類似的技術的 Microsoft 技術支援服務的一般的課程。Microsoft 會永遠嘗試減少問題的使用量,雖然它用來識別問題。這個問題便會被視為之後非工作或協力廠商產品相關的那些工作或協力廠商產品可能會引入回至實際執行環境。

它不是我們發現 detour,那麼考慮以不受支援的 SQL Server 的執行個體的用意。Microsoft 會認可某些實作所需。不過,Microsoft 會要求您驗證性的課程。從可信賴且受信任的公司 detour 是絕對不同的非預期的 detour 所使用的病毒。Microsoft 不保證或認證這些協力廠商產品或協力廠商產品與 Microsoft 產品和服務的互動方式。相反地,第三方廠商負責識別和其產品和服務的可信任度。如果您有協力廠商產品和服務相關的任何問題,請向外聯繫適用的協力廠商。Microsoft 不負責,都是由您使用協力廠商的產品或服務與 SQL Server 造成任何問題。
其他相關資訊
課程提供增強的功能和風險/報酬取捨。一般而言,detour 在 SQL Server 中實作時,協力廠商的程式碼插入處理序空間。這項活動可能會變更 SQL Server 的行為。

以下是一些範例情況和可能的副作用:
  • 連入網路流量 (TDS) 封包會掃描,並變更。Detour 會加入在 net_readdata 網路處理序執行緒的重要位置。甚至 100 部的 CPU 循環週期的這個位置可能會大幅降低批次速率輸送量。

    在實際的 TDS 資料變更可能會導致記憶體 scribblers。這個問題已經觸發各種 SQL Server 穩定性的問題和資料損毀。問題可能會造成部份變更,並重新執行到 SQL Server 的記憶體回收的 TDS 封包。記錄的此層級的輔助功能可能會公開 (expose) 的密碼和其他機密資料追蹤設計來隱藏,並協助保護該 SQL Server。
  • SQL Server 的剖析常式會 detoured 若要變更行為。下列是可能的副作用:
    • 執行計劃與實際的查詢文字不相符。
    • 從用戶端一次送出命令。然而,命令會執行多次。
    • 追蹤輸出會顯示 [原始] 命令而非已變更的查詢。
    • DBCC INPUTBUFFER 命令會顯示 [原始] 命令而非已變更的查詢。
    • Fn_get_sql函數顯示不正確的資料。此外, fn_get_sql函式受到例外狀況,並不正確的結果。Fn_get_sql函式由許多的監視解決方案,並監視解決方案上可能會造成問題。
    • 整體來說可能會中斷使用者模式排程器 (UMS) 和 SQL Server 作業系統 (SQLOS) 排程。這會導致喪失 SQL Server 回應、 效能的變更,以及中斷。
  • Win32 Api 提供增強的安全性功能被 detoured。根據實作,此層級的記錄功能無法公開 (expose) 密碼及其他機密的資料。整體 UMS 和排程的 SQLOS 就會中斷。這會導致喪失 SQL Server 回應,並中斷。
  • SQL Server 處理序中不支援修改函式的資料表和重新導向核心 SQL Server 函式或 Windows API。這可能會導致不穩定和非預期的行為在 SQL Server 的功能。
下列範例會示範, kernel32!GetQueuedCompletionStatus已經 detoured 函式。
MyDLL!MyGetQueuedCompletionStatusssnetlib!ConnectionReadAsyncWait
GetQueuedCompletionStatus函式的組件,第一個指令已被取代跳躍指令。
0:038> u kernel32!GetQueuedCompletionStatuskernel32!GetQueuedCompletionStatus 77e660f1 e90a9f00aa      jmp     21e70000   ß  This points to an address that does not appear in the loaded module list (lm). It is injected code.77e660f6 83ec10          sub     esp,10h
插入的程式碼的組件會顯示 detoured 的活動和 MyDLL 檔案的呼叫。
0:038> u 21e70000  21e70000 55              push    ebp21e70001 8bec            mov     ebp,esp21e70003 51              push    ecx21e70004 8b4518          mov     eax,dword ptr [ebp+18h]21e70007 50              push    eax21e70008 8b4d14          mov     ecx,dword ptr [ebp+14h]21e7000b 51              push    ecx21e7000c 8b5510          mov     edx,dword ptr [ebp+10h]21e7000f 52              push    edx21e70010 8b450c          mov     eax,dword ptr [ebp+0Ch]21e70013 50              push    eax21e70014 8b4d08          mov     ecx,dword ptr [ebp+8]21e70017 51              push    ecx21e70018 e8234d19ee      call   MyDLL+0x4d40 (10004d40)   <- Call to the MyDLL file.21e7001d 8945fc          mov     dword ptr [ebp-4],eax21e70020 8b55fc          mov     edx,dword ptr [ebp-4]

若要判斷是否使用課程中,您可以使用偵錯工具的視窗。要執行這項操作,請依照下列步驟執行。

注意嘗試在實際執行環境之前,請務必測試這個方法。當您使用偵錯工具的視窗時,當您執行命令時,可能會凍結程序。這種行為可能會影響實際執行伺服器。
  1. 將針對 Windows 偵錯工具附加至 SQL Server 或載入完整的使用者傾印檔案。
  2. 請輸入以下的偵錯工具命令。這個命令會檢查針對磁碟上的映像,以判斷是否已插入課程的每個影像。
    !for_each_module "!chkimg -v @#Base -d"
  3. 中斷偵錯工具的連結。
若要取得偵錯工具的視窗,請移至下列 Microsoft 網站: 如果記憶體中影像已變更,輸出可能如下所示:
Comparison image path: c:\program files\microsoft sql server\mssql\binn\ssnetlib.dll\ssnetlib.dllScanning section:    .textSize: 56488Range to scan: 0c261000-0c26eca80c263710-0c26371a  11 bytes - ssnetlib!ConnectionClose           	[ 8b ff 55 8b ec 83 ec 10:68 00 00 00 00 e9 27 8a ]0c2641e0-0c2641ea  11 bytes - ssnetlib!ConnectionReadAsync (+0xad0)	[ 8b ff 55 8b ec 83 ec 38:68 00 00 00 00 e9 00 7e ]0c265160-0c26516a  11 bytes - ssnetlib!ConnectionWriteAsync (+0xf80)	[ 8b ff 55 8b ec 83 ec 28:68 00 00 00 00 e9 ba 70 ]Total bytes compared: 56488(100%)Number of errors: 3333 errors : 0c260000 (0c263710-0c26516a)
您可以檢閱要仔細研究這個問題,如下所示的組件:
0:038> u ssnetlib!ConnectionClosessnetlib!ConnectionClose]:0c263710 6800000000      push    00c263715 e9278ada03      jmp     MyDLL!MyGetQueuedCompletionStatus  <- A detour has been installed.

追蹤 SQL 資料隱碼攻擊的防毒程式可以 detour SQL Server 程式碼。在這個案例中,輸出! for_each_module"! chkimg-v @# Base-d"副檔名可能會顯示 SQL Server 的函式yyparseex_raise2會被修改:

Comparison image path: <symbol file path>\sqlservr.exeRange to scan: c81000-3de7d48    ed71a8-ed71ad  6 bytes - sqlservr!yyparse [ ff f5 41 54 41 55:e9 c7 95 5c 76 90 ]1202820-1202824  5 bytes - sqlservr!ex_raise2 (+0x32b678) [ ff f3 57 41 54:e9 20 e0 29 76 ]Total bytes compared: 51801416(17%)Number of errors: 11

我們建議您連絡的課程或類似的技術提供者,如需有關如何在 SQL Server 使用課程的詳細資訊。如需有關課程和類似的技術的詳細資訊,請至下列的 Microsoft 研究 」 網站:

警告:本文為自動翻譯

內容

文章識別碼:920925 - 最後檢閱時間:03/20/2015 22:20:00 - 修訂: 4.0

Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Express Edition with Advanced Services, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, 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, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, SQL Server 2012 Enterprise Core, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web

  • kbtshoot kbexpertiseadvanced kbinfo kbmt KB920925 KbMtzh
意見反應
"76500"; var Ctrl = ""; document.write("