Použití detours výrobců nebo podobné techniky není podporována v SQL Server

Překlady článku Překlady článku
ID článku: 920925 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Funkce, které slouží ke změně chování Microsoft SQL Server detours nebo podobné techniky může způsobit následující problémy:
  • Problémy s výkonem
  • Nesprávné výsledky
  • Poškození disku a paměti
  • Ztráta odpověď serveru SQL
  • Ukončení procesu neočekávané
  • Neschopnost použít standardní diagnostiky, například příkazu DBCC INPUTBUFFER a funkce fn_get_sql
  • Zvýšená pravděpodobnost problémy zabezpečení
Poznámka: Společnost Microsoft neposkytuje služby odborné pomoci funkce výrobců změnit chování serveru SQL pomocí detours nebo podobné techniky. Pokud pracujete s podporu služeb serveru SQL Server na SQL Server problému a je identifikován, mohl být týká detours nebo podobné techniky změnit chování serveru SQL, pracovník podpory vás zakázat nebo odebrat takové detours nebo podobné funkce jako krok řešení potíží vyzve. Před další řešení potíží může dojít, oznámenou problém musí reprodukována bez jakékoli funkce detour přítomen. By již vyskytnout problém, obraťte se na dodavatele pro funkci výrobců a pokračujte v řešení potíží s směru od tohoto dodavatele může doporučujeme Microsoft.

Další informace

Detours jsou výkonné. Detours poskytují rozšířené schopnosti a riziko/nálezci tradeoff. Obvykle je po implementaci detour v SQL Server odpovídající kód vložení do prostoru procesu. Jsou zachyceny metod SQL Server nebo funkcí. Tuto aktivitu může změnit chování základní výkonu serveru SQL.

Následují některé příklad situacích a možných vedlejší účinky:
  • Příchozí síťové přenosy (TDS) pakety jsou zkontrolovány a změnit. Důležité umístění na podproces procesu net_readdata sítě je přidána detour. Na tomto místě i některé 100 cykly PROCESORU může významně snížit propustnost rychlost dávkové.

    Změna v skutečná data TDS může vést k paměti scribblers. Tento problém má spuštěná různé problémy stability SQL Server a poškození dat. Paket TDS částečně změněn a replay nesmyslné na SQL Server může způsobit problémy. Vybavení na této úrovni protokolování může vystavit hesel a jiných citlivá data, že server SQL trasování je určen potlačit a zabezpečení.
  • Chcete-li změnit chování jsou detoured analýzy rutiny serveru SQL. Vedlejší účinky možné jsou následující:
    • Provádění plány neodpovídají text skutečné dotazu.
    • Příkaz Odeslat pouze jednou z klienta. Však je příkaz spuštěn vícekrát.
    • Výstup trasování zobrazuje původní příkaz namísto změněné dotazu.
    • Příkazu DBCC INPUTBUFFER zobrazuje původní příkaz namísto změněné dotazu.
    • Funkce fn_get_sql zobrazuje nesprávná data. Funkce fn_get_sql je navíc náchylná výjimky a nesprávné výsledky. Funkce fn_get_sql používá mnoho řešení sledování a může způsobit problémy na sledování řešení.
    • Celkově uživatelského režimu Plánovač (UMS) a plánování operačního systému serveru SQL (SQLOS) může být přerušen. To vede ke ztrátě odezvy serveru SQL, změny výkonu a výpadky.
  • Rozhraní Win32 API, které poskytují rozšířené funkce zabezpečení jsou detoured. V závislosti na implementaci může vystavit vybavení protokolování na této úrovni hesel a jiných citlivá data. Celkově UMS a plánování SQLOS přerušení. To vede ztráty odpověď serveru SQL a výpadky.
Následující příklad ukazuje, které kernel32! GetQueuedCompletionStatus detoured funkce.
MyDLL!MyGetQueuedCompletionStatus
ssnetlib!ConnectionReadAsyncWait
v sestavení pro funkci GetQueuedCompletionStatus první instrukce byla nahrazena instrukce skok.
0:038> u kernel32!GetQueuedCompletionStatus
kernel32!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
Sestavení vloženého kódu ukazuje detoured aktivity a volání do souboru MyDLL.
0:038> u 21e70000  

21e70000 55              push    ebp
21e70001 8bec            mov     ebp,esp
21e70003 51              push    ecx
21e70004 8b4518          mov     eax,dword ptr [ebp+18h]
21e70007 50              push    eax
21e70008 8b4d14          mov     ecx,dword ptr [ebp+14h]
21e7000b 51              push    ecx
21e7000c 8b5510          mov     edx,dword ptr [ebp+10h]
21e7000f 52              push    edx
21e70010 8b450c          mov     eax,dword ptr [ebp+0Ch]
21e70013 50              push    eax
21e70014 8b4d08          mov     ecx,dword ptr [ebp+8]
21e70017 51              push    ecx
21e70018 e8234d19ee      call   MyDLL+0x4d40 (10004d40)   <- Call to the MyDLL file.
21e7001d 8945fc          mov     dword ptr [ebp-4],eax
21e70020 8b55fc          mov     edx,dword ptr [ebp-4]
Debugging Tools for Windows lze určit, zda jsou používány detours. Postupujte takto.

Poznámka: Tato metoda vždy otestujte před zkuste ve výrobě. Při použití ladicích nástrojů pro systém Windows může při spuštění příkazů zmrazit proces. Toto chování může nepříznivě ovlivnit výrobní server.
  1. Připojit k serveru SQL Debugging Tools for Windows nebo načíst úplné uživatelského souboru výpisu stavu.
  2. Vydat následující příkaz ladicího programu. Tento příkaz zjistí každý obrázek proti bitové kopie na disku k určení, zda jste byla vložení detours.
    !for_each_module "!chkimg -v @#Base -d"
  3. Odpojit ladicí program.
Získání Debugging Tools for Windows naleznete na následujícím webu:
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
Pokud obrázek v paměti byl změněn, výstupu může být podobná následující: cesta k obrazu
Comparison image path: c:\program files\microsoft sql server\mssql\binn\ssnetlib.dll\ssnetlib.dll
Scanning section:    .text
Size: 56488
Range to scan: 0c261000-0c26eca8
0c263710-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: 33
33 errors : 0c260000 (0c263710-0c26516a)
sestavení prohlédněte problém, přesněji způsobem si můžete přečíst:
0:038> u ssnetlib!ConnectionClose
ssnetlib!ConnectionClose]:
0c263710 6800000000      push    0
0c263715 e9278ada03      jmp     MyDLL!MyGetQueuedCompletionStatus  <- A detour has been installed.
Doporučujeme kontaktovat zprostředkovatele detours nebo podobné techniky informace o použití detours nebo podobné techniky SQL Server. Další informace o detours a podobné techniky navštivte webu Microsoft Research Center:
http://research.microsoft.com/sn/detours

Vlastnosti

ID článku: 920925 - Poslední aktualizace: 19. února 2009 - Revize: 2.0
Informace v tomto článku jsou určeny pro produkt:
  • 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 Desktop Engine (Windows)
  • 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 2000 Enterprise Edition 64-bit
Klíčová slova: 
kbmt kbtshoot kbexpertiseadvanced kbinfo KB920925 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:920925

Dejte nám zpětnou vazbu

 

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