Penggunaan pihak ketiga memutar atau teknik yang mirip tidak didukung di SQL Server

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 920925 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Ringkasan

Fitur yang menggunakan jalan memutar atau teknik yang mirip untuk mengubah perilaku Microsoft SQL Server dapat menyebabkan masalah berikut:
  • Masalah kinerja
  • Hasil yang salah
  • Korupsi disk dan kehabisan memori
  • Hilangnya respon SQL Server
  • Tak terduga proses penghentian
  • Ketidakmampuan untuk menggunakan standar diagnostik, seperti fn_get_sql fungsi dan perintah DBCC INPUTBUFFER
  • Peningkatan kesempatan masalah keamanan
Catatan: Microsoft tidak memberikan layanan dukungan untuk fitur-fitur pihak ketiga yang menggunakan jalan memutar atau teknik yang mirip untuk mengubah perilaku SQL Server. Jika Anda bekerja dengan layanan dukungan SQL Server pada masalah SQL Server, dan itu diidentifikasi bahwa jalan memutar atau teknik yang mirip yang mengubah perilaku SQL Server dapat terlibat, dukungan profesional akan meminta Anda untuk menonaktifkan atau menghapus memutar atau fitur serupa seperti sebagai langkah pemecahan masalah. Sebelum pemecahan masalah tambahan dapat terjadi, melaporkan masalah harus direproduksi tanpa fungsionalitas jalan memutar yang hadir. Jika masalah tidak terjadi, Microsoft dapat merekomendasikan bahwa Anda Hubungi vendor untuk fitur pihak ketiga dan terus pemecahan masalah dengan arah dari vendor yang.

Informasi lebih lanjut

Jalan memutar kuat. Memutar menyediakan meningkatkan kemampuan, dan resiko/imbalan tradeoff. Biasanya, ketika jalan memutar dilaksanakan di SQL Server, kode berlaku disuntikkan ke dalam ruang proses. Metode SQL Server atau fungsi yang menghadang. Kegiatan ini dapat mengubah perilaku kinerja dasar SQL Server.

Berikut adalah beberapa contoh situasi dan kemungkinan efek samping:
  • Masuk jaringan lalu lintas (TDS) paket scan dan berubah. Dalam detour ditambahkan di lokasi kritis net_readdata jaringan proses thread. Bahkan beberapa Lingkaran Berkelanjutan CPU 100 di lokasi ini secara signifikan dapat mengurangi batch tingkat throughput.

    Perubahan data TDS aktual dapat mengakibatkan kehabisan memori scribblers. Masalah ini telah memicu berbagai masalah stabilitas SQL Server dan korupsi data. Masalah dapat menyebabkan paket TDS sebagian berubah dan memutar ulang sampah ke SQL Server. Penebangan fasilitas pada tingkat ini dapat mengekspos password dan data sensitif lainnya SQL Server melacak dirancang untuk menekan dan membantu aman.
  • SQL Server parsing rutinitas detoured untuk mengubah perilaku. Berikut adalah kemungkinan efek samping:
    • Rencana eksekusi tidak cocok permintaan teks yang sebenarnya.
    • Perintah disampaikan hanya satu kali dari klien. Namun, perintah dijalankan beberapa kali.
    • Jejak output menunjukkan perintah asli bukan query berubah.
    • Perintah DBCC INPUTBUFFER menunjukkan perintah asli bukan query berubah.
    • Fungsi fn_get_sql menunjukkan data yang tidak tepat. Selain itu, fungsi fn_get_sql rentan untuk pengecualian dan hasil yang salah. Fungsi fn_get_sql digunakan oleh banyak solusi pemantauan dan dapat menyebabkan masalah pada solusi pemantauan.
    • Secara keseluruhan pengguna modus Scheduler (UMS) dan penjadwalan SQL Server sistem operasi (SQLOS) dapat terganggu. Hal ini menyebabkan hilangnya respon SQL Server, kinerja perubahan, dan padam.
  • Win32 API yang menyediakan fitur keamanan yang ditingkatkan detoured. Tergantung pada implementasi, fasilitas logging pada tingkat ini dapat mengekspos password dan data sensitif lainnya. Secara keseluruhan UMS dan SQLOS penjadwalan terganggu. Hal ini menyebabkan hilangnya respon SQL Server dan padam.
  • Memodifikasi fungsi Daftar Tabel dan mengalihkan fungsi inti SQL Server atau Windows API tidak didukung dalam proses SQL Server. Hal ini dapat mengakibatkan ketidakstabilan dan perilaku tak terduga dalam fungsi SQL Server.
Contoh berikut menunjukkan bahwa kernel32!GetQueuedCompletionStatus fungsi telah detoured.
MyDLL!MyGetQueuedCompletionStatus
ssnetlib!ConnectionReadAsyncWait
Di Majelis untuk fungsi GetQueuedCompletionStatus , instruksi pertama telah diganti dengan instruksi melompat.
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
Majelis untuk kode disuntikkan menunjukkan aktivitas detoured dan panggilan ke MyDLL file.
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]

Anda dapat menggunakan Debugging alat untuk Windows untuk menentukan apakah memutar sedang digunakan. Untuk melakukannya, ikuti langkah berikut:

Catatan: Selalu menguji metode ini sebelum Anda mencoba di produksi. Bila Anda menggunakan Debugging alat untuk Windows, proses dapat membekukan ketika Anda menjalankan perintah. Perilaku ini dapat mempengaruhi server produksi.
  1. Melampirkan Debugging alat untuk Windows untuk SQL Server, atau memuat berkas dump pengguna lengkap.
  2. Mengeluarkan perintah debugger berikut. Perintah ini akan memeriksa setiap gambar melawan pada disk image untuk menentukan apakah memutar telah disuntik.
    !for_each_module "!chkimg -v @#Base -d"
  3. Melepaskan debugger.
Untuk mendapatkan Debugging alat untuk Windows, kunjungi Web site Microsoft berikut:
http://www.Microsoft.com/whdc/devtools/debugging/default.mspx
Jika gambar di kehabisan memori telah diubah, output mungkin seperti berikut:
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)
Anda dapat meninjau Majelis untuk melihat lebih dekat pada masalah, sebagai berikut:
0:038> u ssnetlib!ConnectionClose
ssnetlib!ConnectionClose]:
0c263710 6800000000      push    0
0c263715 e9278ada03      jmp     MyDLL!MyGetQueuedCompletionStatus  <- A detour has been installed.

Program antivirus yang melacak serangan injeksi SQL dapat memutar kode SQL Server. Dalam skenario ini, output! for_each_module "! chkimg - v @#Base -d" ekstensi mungkin menunjukkan bahwa SQL Server fungsi yyparse dan ex_raise2 diubah:

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

Kami sarankan agar Anda menghubungi penyedia dari pengalihan atau teknik yang mirip untuk informasi tentang cara menggunakan jalan memutar atau teknik yang mirip dalam SQL Server. Untuk informasi lebih lanjut tentang jalan memutar dan teknik yang mirip, kunjungi situs web pusat penelitian Microsoft berikut:
http://Research.Microsoft.com/SN/Detours

Properti

ID Artikel: 920925 - Kajian Terakhir: 07 Mei 2014 - Revisi: 3.0
Berlaku bagi:
  • 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
Kata kunci: 
kbtshoot kbexpertiseadvanced kbinfo kbmt KB920925 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.
Klik disini untuk melihat versi Inggris dari artikel ini: 920925

Berikan Masukan

 

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