Utilizarea de al treilea-petrecere de ocolurilor sau tehnici similare nu este acceptată în SQL Server

Traduceri articole Traduceri articole
ID articol: 920925 - View products that this article applies to.
Măriți totul | Reduceți totul

Rezumat

Caracteristici care utilizează ocoluri sau tehnici similare pentru a modifica comportamentul de Microsoft SQL Server poate provoca următoarele probleme:
  • Probleme de performanță
  • Rezultate incorecte
  • Disc și memorie corupției
  • Pierderea răspunsului SQL Server
  • Neașteptate procesul de reziliere
  • Incapacitatea de a utiliza diagnosticare standard, cum ar fi funcția de fn_get_sql și comanda DBCC INPUTBUFFER
  • Risc crescut de probleme de securitate
Notă Microsoft nu furnizează consolidare servicii de suport pentru caracteristici terțe care utilizează ocoluri sau tehnici similare pentru a modifica comportamentul de SQL Server. Dacă lucrați cu consolidare servicii de sprijin SQL Server la o problemă de SQL Server, și identificat că ocoluri sau tehnici similare care modifica comportamentul de SQL Server ar putea fi implicate, suport profesional va cere pentru a dezactiva sau pentru a elimina astfel de ocoluri sau caracteristici similare ca un pas de depanare. Înainte de depanare suplimentare pot să apară, problema raportate trebuie să fie reproduse fără orice funcționalitate de ocol prezente. Ar trebui problema nu mai aparea, Microsoft pot recomandăm să contactați distribuitorul pentru funcția de terți și continuați depanarea cu direcția de la respectivul furnizor.

Informații suplimentare

Ocoluri sunt puternice. Ocoluri furniza capabilități îmbunătățite și un compromis de risc/recompensa. De obicei, atunci când un ocol este implementat în SQL Server, codul aplicabile este injectat în spațiul de proces. SQL Server metode sau func?ii sunt interceptate. Această activitate poate schimba comportamentul bază de performanță de SQL Server.

Următoarele sunt unele situații de exemplu și reacții adverse posibile:
  • Intrare rețea trafic (TDS) pachete sunt scanate și schimbat. Ocol este adăugat la o locație critice la firul de proces net_readdata rețea. Chiar unele 100 ciclurile Procesorului la această locație poate reduce semnificativ lot rata tranzitată.

    O schimbare în datele reale TDS poate duce la memoria scribblers. Această problemă a declanșat diverse probleme de stabilitate SQL Server și în corupere acoperire de date. Probleme pot determina un pachet de TDS parțial modificat și pentru a reda gunoi la SQL Server. Facilitățile de la acest nivel de logare pot expune parolele și alte date sensibile că SQL Server de urmărire este proiectat pentru a suprima și de a ajuta sigur.
  • SQL Server parsare rutine sunt detoured pentru a schimba comportamentul. Următoarele sunt reacții adverse posibile:
    • Planurile de executie nu se potrivesc interogării actuale textul.
    • O comandă este prezentată numai o singură dată la client. Cu toate acestea, comanda se executa de mai multe ori.
    • Urme de ieșire Arată comanda originală în loc de interogare modificate.
    • Comanda DBCC INPUTBUFFER Arată comanda originală în loc de interogare modificate.
    • Funcția fn_get_sql prezinta date incorecte. În plus, funcția de fn_get_sql este susceptibil la excep?ii ?i la rezultate incorecte. Funcția fn_get_sql este utilizată de multe solutii de monitorizare și poate provoca probleme pe soluții de monitorizare.
    • În general utilizator modul Programator de activități (UMS) și programarea SQL Server sistem de operare (SQLOS) poate fi întreruptă. Acest lucru duce la pierderea răspunsului SQL Server, modificări de performanță, și la întreruperile.
  • Sunt detoured Win32 API-uri care furnizează caracteristici de securitate întărită. În funcție de punerea în aplicare, facilitățile de logare la acest nivel ar putea expune parolele și alte date sensibile. În general este întreruptă UMS și SQLOS programarea. Acest lucru conduce la pierderea răspunsului SQL Server și la întreruperile.
  • Modificarea funcției tabele și redirecționarea funcții de SQL Server core sau Windows API nu sunt acceptate în cadrul procesului de SQL Server. Acest lucru poate duce la instabilitate și comportament neașteptate în funcția de SQL Server.
Următorul exemplu arată că kernel32!GetQueuedCompletionStatus funcție a fost detoured.
MyDLL!MyGetQueuedCompletionStatus
ssnetlib!ConnectionReadAsyncWait
În cadrul Adunării pentru funcția de GetQueuedCompletionStatus , prima instrucțiune a fost înlocuit cu o instrucțiune de salt.
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
Adunarea pentru codul infiltrat Arată activitate de firmă detoured și un apel sosit la fișierul 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]

Utilizați Debugging Tools for Windows pentru a determina dacă sunt utilizate ocoluri. Pentru aceasta, urma?i ace?ti pa?i.

Notă Întotdeauna de testare această metodă înainte să încercați-l în producție. Când utilizați Debugging Tools for Windows, procesul poate congela când executați comenzile. Acest comportament poate afecta un server de producție.
  1. Atașați Debugging Tools for Windows la SQL Server, sau încărcați un fișier de imagine memorie completă utilizator.
  2. Emite următoarea comandă depanator. Această comandă inspectează fiecare imagine împotriva imaginea de pe disc pentru a determina dacă ocoluri au fost injectate.
    !for_each_module "!chkimg -v @#Base -d"
  3. Desprinde depanator.
Pentru a obține Debugging Tools for Windows, vizitați următorul site Web Microsoft:
http://www.Microsoft.com/whdc/devtools/debugging/default.mspx
Dacă imaginea din memorie a fost modificat, ieșire poate seamănă cu următorul:
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)
Puteți revedea Adunarea să se uite mai atent la problema, după cum urmează:
0:038> u ssnetlib!ConnectionClose
ssnetlib!ConnectionClose]:
0c263710 6800000000      push    0
0c263715 e9278ada03      jmp     MyDLL!MyGetQueuedCompletionStatus  <- A detour has been installed.

Programele antivirus care urmăriți atacuri de injectare SQL poate ocol codul SQL Server. În acest scenariu, ieșirea! for_each_module "! chkimg - v @#Base -d" extinderea poate Arată că SQL Server funcții yyparse și ex_raise2 sunt modificate:

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

Vă recomandăm să contactați furnizorul de ocoluri sau tehnici similare pentru informații despre cum să utilizați ocoluri sau tehnici similare în SQL Server. Pentru mai multe informații despre ocolurile și tehnici similare, vizitați următorul site Microsoft Research Center Web:
http://Research.Microsoft.com/SN/detours

Proprietă?i

ID articol: 920925 - Ultima examinare: 7 mai 2014 - Revizie: 3.0
Se aplică la:
  • 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
Cuvinte cheie: 
kbtshoot kbexpertiseadvanced kbinfo kbmt KB920925 KbMtro
Traducere automată
IMPORTANT: Acest articol este tradus cu ajutorul software-ului Microsoft de traducere automată ?i poate fi corectat prin intermediul tehnologiei Community Translation Framework (CTF). Microsoft oferă articole traduse automat, post-editate de comunitate ?i articole traduse de oameni, pentru a permite accesul la toate articolele din Baza noastră de cuno?tin?e în mai multe limbi. Articolele traduse automat ?i post-editate pot con?ine gre?eli de vocabular, sintaxă ?i/sau gramatică. Microsoft nu este responsabil de inexactită?ile, erorile sau daunele cauzate de traducerea gre?ită a con?inutului sau de utilizarea acestuia de către clien?i. Găsi?i mai multe informa?ii despre traducerea în colaborare la http://support.microsoft.com/gp/machine-translation-corrections/ro.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 920925

Trimite?i feedback

 

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