サード ・ パーティ製の回り道または同様の手法を使用するには、SQL Server でサポートされていません。

文書翻訳 文書翻訳
文書番号: 920925 - 対象製品
すべて展開する | すべて折りたたむ

概要

機能する回り道または同様の手法を使用して、Microsoft SQL Server の動作を変更するには、次の問題があります。
  • パフォーマンス上の問題
  • 誤った結果
  • ディスクとメモリの破損
  • SQL Server の応答が失われる
  • 予期しないプロセス終了
  • Fn_get_sql関数、および DBCC INPUTBUFFER コマンドなど、標準の診断を使用するにはことができません。
  • セキュリティ上の問題の可能性が高く
メモ マイクロソフトは回り道または同様の手法を使用して、SQL Server の動作を変更するには、サード パーティの機能のサポート サービスを提供しません。回り道」または「SQL Server 動作を変更する同様手法が関与するいることを識別している SQL Server のサポート サービスと SQL Server の問題である、プロのサポートやトラブルシューティングの手順として、そのような回り道または同様の機能を削除する無効するを求められます。、追加のトラブルシューティングを行う前に、detour 機能が存在せず、報告された問題を再現する必要があります。必要があります問題が発生しなくなったら、製造元に問い合わせて、サード パーティの機能をそのベンダーからの方向のトラブルシューティングを続行お勧め可能性があります。

詳細

回り道は強力です。回り道は、強化された機能とリスク/報酬のトレードオフを提供します。通常、detour を SQL Server では、該当するコードがプロセス空間に挿入されます。SQL Server のメソッドまたは関数が受け取られます。この活動は、SQL Server のパフォーマンスの基本的な動作を変更できます。

いくつかの例のような場合と可能な副作用を次に示します。
  • 着信ネットワーク トラフィック (TDS) のパケットがスキャンされ、変更されました。Detour net_readdata ネットワークのプロセスのスレッドで重要な位置に追加されます。この場所でも 100 の CPU サイクルはバッチ レートのスループットを大幅に削減可能性があります。

    メモリ scribblers TDS の実際のデータが変更された可能性があります。さまざまな SQL Server の安定性の問題によってこの問題が発生し、データが破損します。問題が原因で、TDS パケットを部分的に変更して、SQL Server にガベージを再生することがあります。ログ記録機能はこのレベルで失う可能性がありますパスワードなどの機密性の高いデータを SQL Server のトレースは抑制して安全性を確保する設計されています。
  • SQL Server の解析ルーチンは、動作を変更する detoured します。可能な副作用を次に示します。
    • 実行プランは、実際のクエリ テキストを一致しません。
    • コマンドは、1 回だけ、クライアントから送信されます。ただし、コマンドを複数回を実行します。
    • トレース出力は、変更後のクエリではなく、元のコマンドを示しています。
    • DBCC INPUTBUFFER コマンドは、変更後のクエリではなく、元のコマンドを示しています。
    • Fn_get_sql関数は不正なデータを示しています。さらに、 fn_get_sql関数は例外を不適切な結果に影響を受けやすくなります。Fn_get_sql関数は、多くの監視ソリューションで使用され、監視ソリューションで問題が発生する可能性があります。
    • 全体的なユーザー モード スケジューラ (UMS)」および「SQL Server オペレーティング システム (SQLOS) のスケジュールを中断する可能性があります。これにより、SQL Server の応答が失われる、パフォーマンスの変更、および停止します。
  • 強化されたセキュリティ機能を提供する Win32 Api は、detoured です。このレベルのログ機能は実装に依存しますパスワードなどの機密性の高いデータをさらすこと。全体的な UMS とスケジューリング SQLOS は中断されます。これにより、SQL Server の応答の損失を停止します。
  • SQL Server プロセス内で関数のテーブルを変更して、中心的な SQL Server の機能、または Windows API のリダイレクトはサポートされていません。SQL Server の機能で、これが不安定になるし、予期しない動作をする可能性があります。
次の例では、ことを示しています、kernel32!GetQueuedCompletionStatus関数が detoured されています。
MyDLL!MyGetQueuedCompletionStatus
ssnetlib!ConnectionReadAsyncWait
GetQueuedCompletionStatusの関数、アセンブリ内の最初の命令は、ジャンプ命令で交換済み。
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
挿入されたコードのアセンブリは、detoured の活動と、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]

回り道を使用されているかどうかを確認するのには、Windows 用デバッグ ツールを使用できます。これを行うには、次の手順を実行します。

メモ 運用環境で実行する前に必ずこのメソッドをテストします。Windows 用デバッグ ツールを使用すると、コマンドを実行すると、プロセスがフリーズします。この問題を運用サーバーに悪影響を及ぼします。
  1. Windows 用デバッグ ツールには、SQL Server にアタッチまたは完全なユーザー ダンプ ファイルをロードします。
  2. 次のデバッガー コマンドを発行します。このコマンドは、それぞれの回り道が挿入されているかどうかを確認するのには、ディスク上のイメージに対してイメージを検査します。
    !for_each_module "!chkimg -v @#Base -d"
  3. デバッガーをデタッチします。
Windows 用デバッグ ツールを入手するには、次のマイクロソフト Web サイトを参照してください。
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
場合は、メモリ内のイメージを変更すると、出力は、次のような。
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)
詳しく見ての問題は、次のように、アセンブリを確認できます。
0:038> u ssnetlib!ConnectionClose
ssnetlib!ConnectionClose]:
0c263710 6800000000      push    0
0c263715 e9278ada03      jmp     MyDLL!MyGetQueuedCompletionStatus  <- A detour has been installed.

SQL インジェクション攻撃を追跡するウイルス対策プログラムには SQL Server コード detour ことができます。出力をこのシナリオでは、! for_each_module」! chkimg v @# Base-d"拡張子が ex_raise2 と SQL Server の関数 yyparse は、変更を表示することがあります。

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 で、回り道または同様の手法を使用する方法については、同様の技術や、回り道のプロバイダーに問い合わせることをお勧めします。回り道と同様の手法の詳細については、次のマイクロソフトの研究センターの Web サイトを参照してください。
http://research.microsoft.com/sn/detours

プロパティ

文書番号: 920925 - 最終更新日: 2014年5月7日 - リビジョン: 7.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 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:920925
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

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