Üçüncü taraf detours veya benzer teknikleri kullanımını SQL Server'da desteklenmez

Makale çevirileri Makale çevirileri
Makale numarası: 920925 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Özet

Microsoft SQL Server'ın davranışını değiştirmek için detours veya benzer teknikler kullanan özellikler aşağıdaki sorunlara neden olabilir:
  • Performans sorunları
  • Yanlış sonuçlar
  • Disk ve Bellek Bozulması
  • SQL Server yanıt kaybı
  • Beklenmeyen bir işlem sonlandırma
  • Fn_get_sql işlev ve DBCC INPUTBUFFER komutu gibi standart tanılama kullanma becerisinin
  • Artırılmış güvenlik sorunları olasılığı
Not Microsoft SQL Server'ın davranışını değiştirmek için detours veya benzer teknikler kullanan üçüncü taraf özellikler için destek hizmetleri sağlamaz. SQL Server Destek Hizmetleri ile SQL Server sorun üzerinde çalışıyorsanız ve detours ya da SQL Server'ın davranışını değiştiren benzer teknikler söz konusu, tanımlanan, profesyonel destek devre dışı bırakmak için ya da bu tür detours veya benzer özellikleri sorun giderme adımı olarak kaldırmak için sorar. Ek sorun giderme işleminin gerçekleşmesi için önce bildirilen sorunun herhangi detour işlevsellik var üretilmelidir. Sorun artık ortaya, Microsoft üçüncü taraf özelliği için satıcınıza başvurun ve bu satıcıdan yönünde sorun gidermeye devam edin önerebilir.

Daha fazla bilgi

Detours daha güçlüdür. Gelişmiş özellikleri ve risk/ödül tradeoff detours sağlar. Genellikle, SQL Server'da bir detour uygulandığında, uygulanabilir kodu işlem alanına eklenmesini. SQL Server yöntemleri veya işlevleri yakalanan. Bu faaliyetin, SQL Server'ın temel performans davranış değiştirebilirler.

Bazı örnek durumları ve olası yan etkileri şunlardır:
  • Gelen ağ trafiğini (TDS) paketlerini taranmış ve değişti. Detour net_readdata ağ işlem iş parçacığı önemli bir konumda eklenir. Hatta bazı 100 CPU döngüsü bu konumda toplu oranı verimi önemli ölçüde azaltabilir.

    Gerçek TDS verisinde bir değişiklik için bellek scribblers neden olabilir. Bu sorun çeşitli SQL Server kararlılık sorunları başlatmış olabilir ve veri bozulması. TDS paket kısmen değiştirilmesi ve çöp SQL Server'a yeniden yürütme sorunlara yol açabilir. Bu düzeyde tesis günlüğü parolalar ve diğer hassas verileri izleme bastırmak ve güvenliğini sağlamak için tasarlanmıştır, SQL Server getirebilir.
  • SQL Server ayrıştırma yordamlar davranışını değiştirmek için detoured. Olası yan etkileri şunlardır:
    • Yürütme planları, gerçek sorgu metni eşleşmiyor.
    • Bir komut istemcisi yalnızca bir kez gönderilir. Ancak, komut birden çok kez yürütülür.
    • İzleme çıktısı, değiştirilen sorgu yerine özgün komutu gösterir.
    • DBCC INPUTBUFFER komutu değiştirilen sorgu yerine özgün komutu gösterir.
    • Fn_get_sql işlev hatalı verileri gösterir. Ayrıca, fn_get_sql işlev özel durumlar ve yanlış sonuçlar için açıktır. Fn_get_sql işlev, pek çok izleme çözümleri tarafından kullanılan ve üzerinde izleme çözümleri sorunlara yol açabilir.
    • Genel kullanıcı modu Zamanlayıcısı (UMS) ve SQL Server işletim sistemi (SQLOS) zamanlama kesintiye uğrayabilir. Bu, SQL Server yanıt kaybı, performans değişiklikleri ve kesintileri doğurur.
  • Gelişmiş güvenlik özelliklerini sağlamak için Win32 API detoured. Uygulamanıza bağlı olarak, parolalar ve diğer hassas verileri günlüğe kaydetme özellikleri bu düzeyde bulaştırabilir. Genel UMS ve zamanlama SQLOS kesilen. Bu, SQL Server yanıt kaybı ve kesintileri için açar.
  • SQL Server işlemi içinde işlevi olan tabloları düzenlemek ve çekirdek SQL Server işlevler veya Windows API yönlendirme desteklenmez. SQL Server işlevselliği bu kararsızlık ve beklenmeyen davranışlara neden olabilir.
Aşağıdaki örnek, kernel32 gösterir!GetQueuedCompletionStatus işlevi detoured.
MyDLL!MyGetQueuedCompletionStatus
ssnetlib!ConnectionReadAsyncWait
GetQueuedCompletionStatus işlevi derlemedeki ilk yönergenin bir atlama yönergesi ile değiştirilmiştir.
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 etkinliği ve MyDLL dosyasına bir çağrı kodu derleme gösterir.
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 için hata ayıklama araçları detours kullanılıp kullanılmadığını belirlemek için kullanabilirsiniz. Bunu yapmak için aşağıdaki adımları izleyin.

Not Üretimde çalışmadan önce her zaman bu yöntemi sınayın. Windows için hata ayıklama araçları kullandığınızda, komutları çalıştırdığınızda işlem donabilir. Bu davranış, bir üretim sunucusuna olumsuz etkileyebilir.
  1. Tam kullanıcı döküm dosyasını yüklemek veya SQL Server Windows için hata ayıklama araçları ekleyebilirsiniz.
  2. Aşağıdaki hata ayıklayıcı komutu yayınlayın. Bu komut her görüntü detours eklenmesini olup olmadığını belirlemek için disk görüntüsü karşı inceler.
    !for_each_module "!chkimg -v @#Base -d"
  3. Hata ayıklayıcı ayır.
Windows için hata ayıklama araçları'nı edinmek için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
Bellek içi resim değiştirilmişse, çıktı aşağıdakine benzeyebilir:
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)
Derleme sorunu gibi daha yakından bakmak için gözden geçirebilirsiniz:
0:038> u ssnetlib!ConnectionClose
ssnetlib!ConnectionClose]:
0c263710 6800000000      push    0
0c263715 e9278ada03      jmp     MyDLL!MyGetQueuedCompletionStatus  <- A detour has been installed.

SQL ekleme saldırıları izlemek virüsten koruma programları, SQL Server kod detour. Bu senaryoda, çıktısını! for_each_module "! chkimg v-@# -d Base" uzantısı SQL Server işlevler yyparse ve ex_raise2 değişiklik gösterebilir:

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'da detours veya benzer teknikler kullanma hakkında bilgi için sağlayıcının detours veya benzer teknikler başvurmanızı öneririz. Detours ve benzer teknikler hakkında daha fazla bilgi için aşağıdaki Microsoft Research Center Web sitesini ziyaret edin:
http://Research.microsoft.com/sn/detours

Özellikler

Makale numarası: 920925 - Last Review: 7 Mayıs 2014 Çarşamba - Gözden geçirme: 3.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • 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
Anahtar Kelimeler: 
kbtshoot kbexpertiseadvanced kbinfo kbmt KB920925 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 920925

Geri Bildirim Ver

 

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