L'utilisation de détours tiers ou à des techniques similaires n'est pas pris en charge dans SQL Server

Traductions disponibles Traductions disponibles
Numéro d'article: 920925 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

Fonctionnalités qui permet de modifier le comportement de Microsoft SQL Server detours ou des techniques similaires peuvent provoquer les problèmes suivants :
  • Problèmes de performances
  • Résultats incorrects
  • Corruption de disque et de mémoire
  • Perte de la réponse de SQL Server
  • Arrêt inattendu du processus
  • Impossibilité d'utiliser les utilitaires de diagnostic standard, comme la fonction fn_get_sql et la commande DBCC INPUTBUFFER
  • Risques de problèmes de sécurité
Remarque : Microsoft ne fournit pas de services de prise en charge des fonctionnalités de tiers qui utilisent des détours ou des techniques similaires pour modifier le comportement de SQL Server. Si vous travaillez avec les services de prise en charge de SQL Server sur un problème SQL Server, et il est identifiée que detours ou des techniques similaires qui modifient le comportement de SQL Server peuvent être impliqués, le technicien du support technique vous demande de désactiver ou de supprimer ces détours ou des fonctionnalités analogues en tant qu'étape de dépannage. Avant de pouvoir exécuter des opérations de dépannage, le problème doit être reproduit sans fonctionnalités détour présentes. Doit le problème se produit plus, Microsoft peut vous conseillons de contactez le fournisseur pour la fonctionnalité tierce et poursuivez le dépannage avec la direction à partir de ce fournisseur.

Plus d'informations

Detours sont puissants. Detours fournissent des fonctionnalités améliorées et un compromis de risques/gratifications. En général, lorsqu'un détour est implémenté dans SQL Server, le code applicable est injecté dans l'espace de processus. Les fonctions ou les méthodes de SQL Server sont interceptées. Cette activité peut modifier le comportement de base de performances de SQL Server.

Voici quelques situations d'exemple et les éventuels effets secondaires :
  • Les paquets de trafic (TDS) réseau entrants sont analysés et modifiés. Le détour est ajouté à un emplacement sur le thread de processus net_readdata réseau critique. Même certains 100 cycles CPU à cet emplacement peuvent réduire de manière significative débit de fréquence de traitement par lots.

    Scribblers de mémoire peut entraîner une modification des données TDS réelles. Ce problème a déclenché plusieurs problèmes de stabilité de SQL Server et une altération des données. Problèmes peuvent entraîner un paquet TDS pour être partiellement modifiée et relecture garbage à SQL Server. Des fonctionnalités à ce niveau de consignation peuvent exposer les mots de passe et autres données sensibles que SQL Server tracing est conçu pour supprimer et pour aider à sécuriser.
  • Routines d'analyse de SQL Server sont detoured pour modifier le comportement. Effets secondaires possibles sont les suivantes :
    • Les plans d'exécution ne correspondent pas de texte de la requête réelle.
    • Une commande est soumise qu'une seule fois à partir du client. Toutefois, la commande est exécutée plusieurs fois.
    • Sortie de trace affiche la commande d'origine au lieu de la requête modifiée.
    • La commande DBCC INPUTBUFFER affiche la commande d'origine au lieu de la requête modifiée.
    • La fonction fn_get_sql n'affiche des données incorrectes. En outre, la fonction fn_get_sql est sensible à des exceptions et des résultats incorrects. La fonction fn_get_sql n'est utilisée par de nombreuses solutions de surveillance et peut provoquer des problèmes sur les solutions de contrôle.
    • Ensemble du Planificateur de Mode utilisateur (UMS) et de la planification du système d'exploitation de SQL Server (SQLOS) peuvent être interrompues. Cela conduit à une perte de réponse de SQL Server, à des modifications de performance et aux pannes.
  • API Win32 qui fournissent des fonctionnalités de sécurité améliorées sont detoured. Selon l'implémentation, les fonctions d'enregistrement à ce niveau peuvent exposer les mots de passe et autres données sensibles. Ensemble UMS et SQLOS la planification est interrompue. Cela conduit à une perte de réponse de SQL Server et aux pannes.
  • Modification des tables de fonction et en redirigeant les fonctions principales de SQL Server ou de l'API Windows ne sont pas pris en charge dans le processus SQL Server. Cela peut entraîner une instabilité et un comportement inattendu dans les fonctionnalités de SQL Server.
L'exemple suivant montre que le kernel32 !GetQueuedCompletionStatus fonction a été detoured.
MyDLL!MyGetQueuedCompletionStatus
ssnetlib!ConnectionReadAsyncWait
Dans l'assembly pour la fonction GetQueuedCompletionStatus , la première instruction a été remplacée par une instruction de saut.
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
L'assembly pour le code injecté indique l'activité detoured et un appel au fichier Ma_dll.
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]

Vous pouvez utiliser les outils de débogage pour Windows afin de déterminer si des détours sont utilisés. Pour ce faire, procédez comme suit.

Remarque : Testez toujours cette méthode avant d'essayer d'elle dans la production. Lorsque vous utilisez les outils de débogage pour Windows, le processus peut se figer lorsque vous exécutez les commandes. Ce comportement peut affecter un serveur de production.
  1. Attacher des outils de débogage pour Windows à SQL Server, ou de charger un fichier de vidage utilisateur complet.
  2. Lancez la commande de débogueur suivantes. Cette commande inspecte chaque image par rapport à l'image sur le disque afin de déterminer si des détours ont été injectés.
    !for_each_module "!chkimg -v @#Base -d"
  3. Détacher le débogueur.
Pour obtenir les outils de débogage pour Windows, visitez le site Web de Microsoft à l'adresse suivante :
http://www.Microsoft.com/whdc/devtools/debugging/default.mspx
Si l'image en mémoire a été modifié, la sortie peut ressembler au suivant :
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)
Vous pouvez examiner l'assembly à examiner plus précisément le problème, comme suit :
0:038> u ssnetlib!ConnectionClose
ssnetlib!ConnectionClose]:
0c263710 6800000000      push    0
0c263715 e9278ada03      jmp     MyDLL!MyGetQueuedCompletionStatus  <- A detour has been installed.

Les programmes antivirus qui effectuent le suivi des attaques par Injection SQL peuvent detour code de SQL Server. Dans ce scénario, la sortie de la! for_each_module "! chkimg - v @# de Base -d" extension peut indiquer que les ex_raise2 et les yyparse des fonctions de SQL Server sont modifiées :

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

Nous vous conseillons de contacter le fournisseur des détours ou des techniques similaires pour plus d'informations sur l'utilisation des détours ou des techniques similaires dans SQL Server. Pour plus d'informations sur détours et des techniques similaires, visitez le site Web de Microsoft Research Center suivant :
http://Research.Microsoft.com/sn/Detours

Propriétés

Numéro d'article: 920925 - Dernière mise à jour: mercredi 7 mai 2014 - Version: 3.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • 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 Édition Personelle
  • Microsoft SQL Server 2000 Standard
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Édition Développeur
  • Microsoft SQL Server 2000 Édition Entreprise
  • 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
Mots-clés : 
kbtshoot kbexpertiseadvanced kbinfo kbmt KB920925 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d?une traduction incorrecte du contenu ou de son utilisation par les clients.
La version anglaise de cet article est la suivante: 920925
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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