Detours veya benzer teknikler ile SQL Server beklenmeyen davranışlara neden olabilir

Ö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
Özet
Microsoft Destek, Microsoft SQL Server için ek işlevleri sağlamak üzere detours kullanan üçüncü taraf ürünleri sayısız karşılaştı. Bunlar genellikle işlevlerini denetlemekte olduğunuz. Microsoft uygulamaları için üçüncü taraf detours için hiçbir sertifika işlemi yok. Bu nedenle, genellikle Microsoft kesinlikle detours kullanımını zorlaştırır.

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
  • yüzde 100 CPU kullanımı ve uzun, bellek içi OLTP tabloları kullandığınızda SQL Server veritabanı kurtarma kez
Bağlantılı sunucular, genişletilmiş yordamlar veya SQL Server işlemi içinde COM nesneleri gibi Microsoft olmayan yazılımı kullanırken bu aynı sorunlarla karşılaşabilirsiniz. Detours DBA görünümde gizlenir. Bir detour ortaya çıkarmak için aşağıdaki "Ek bilgi" bölümünde açıklanan teknikler kullanmanız gerekir. Bağlantılı sunucular, COM nesnelerini ve genişletilmiş yordamlar açık kaydı varsa ve tanımlanan arabirimleri.

Not: Detours gizli doğası ve yayımlanmış arabirimleri eksikliği nedeniyle, Microsoft, detours veya benzer teknikler kullanan üçüncü taraf özellikleri için destek hizmetleri sağlamaz. Yalnızca kendi bağlantılı sunucu için sorumlu veya diğer sanctioned gibi üçüncü taraf kendi kod desteği için sorumlu olan dağıtım.

Yaygın uygulama, sorun giderme, Microsoft Destek Hizmetleri, gerekli olmayan işleri devre dışı ve devre dışı bırakmak veya üçüncü taraflara ait bileşenlerin ve diğer, benzer teknikler kaldırmak için sormak her zamanki kurs var. Microsoft sorunu tanımlayan sırada sorunun Ayak izi azaltmak her zaman çalışır. Sorun olarak belirlendikten sonra işleri veya üçüncü taraf ürünleri ilgisi olmayan, bu işleri veya üçüncü taraf ürünleri yeniden üretime sunulmasının.

Desteklenmeyen olması için SQL Server örneğini göz önünde bulundurun ve bir detour ortaya çıkarmak için bizim amaç değil. Microsoft, bazı uygulamaları gerekli olduğunu bildirir. Ancak, Microsoft, detours supportability doğrulamak gerektirir. Saygın ve güvenilir bir şirketten bir detour bir virüs tarafından kullanılan bir beklenmeyen detour kesinlikle farklıdır. Microsoft bu üçüncü taraf ürünler veya üçüncü taraf ürünleri Microsoft ürünleri ve Hizmetleri ile nasıl etkileşimde bulunduğunu onaylamak veya garanti. Bunun yerine, üçüncü taraf satıcılar kimlik ve güvenilirliğini ürünleri ve Hizmetleri için sorumludur. Üçüncü taraf ürünleri ve Hizmetleri hakkında sorularınız varsa, lütfen uygun bir üçüncü şahısa ulaşma. Microsoft, üçüncü taraf ürünleri veya hizmetleri SQL Server bağlantılı olarak neden olduğu sorunlardan sorumlu değildir.
Daha fazla bilgi
Gelişmiş özellikleri ve risk/ödül tradeoff detours sağlar. Genellikle, SQL Server'da bir detour uygulandığında, üçüncü taraf kod işlem alanına eklenmesini. Bu etkinlik SQL Server davranışını değiştirebilir.

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ığı en önemli bir konuma eklenir. Bu konumda bile 100 CPU döngülerini toplu hızı performansı ö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ına başlatmış olabilir ve veri bozulması. TDS paket kısmen değiştirilmesi ve çöp SQL Server'a yeniden çalmak için sorunlara neden olabilir. 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, birden çok kez komut yürütülür.
    • İzleme çıktısı, değiştirilen sorgu yerine özgün komutu gösterir.
    • Özgün komut değiştirilen sorgu yerine DBCC INPUTBUFFER 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 neden olabilir.
    • 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. SQL Server yanıt kaybı ve kesintileri için yol açar.
  • SQL Server işlemi içinde işlevi 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!MyGetQueuedCompletionStatusssnetlib!ConnectionReadAsyncWait
GetQueuedCompletionStatus işlevi derlemedeki ilk yönergenin bir atlama yönergesi ile değiştirilmiştir.
0:038> u kernel32!GetQueuedCompletionStatuskernel32!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 için derleme gösterir.
0:038> u 21e70000  21e70000 55              push    ebp21e70001 8bec            mov     ebp,esp21e70003 51              push    ecx21e70004 8b4518          mov     eax,dword ptr [ebp+18h]21e70007 50              push    eax21e70008 8b4d14          mov     ecx,dword ptr [ebp+14h]21e7000b 51              push    ecx21e7000c 8b5510          mov     edx,dword ptr [ebp+10h]21e7000f 52              push    edx21e70010 8b450c          mov     eax,dword ptr [ebp+0Ch]21e70013 50              push    eax21e70014 8b4d08          mov     ecx,dword ptr [ebp+8]21e70017 51              push    ecx21e70018 e8234d19ee      call   MyDLL+0x4d40 (10004d40)   <- Call to the MyDLL file.21e7001d 8945fc          mov     dword ptr [ebp-4],eax21e70020 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 şu 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, işlem komutları çalıştırdığınızda donabilir. Bu davranış, bir üretim sunucusuna olumsuz etkileyebilir.
  1. Tam kullanıcı döküm dosyasını yüklemek veya SQL Server için 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 diskteki görüntü 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 sitesine bakın: Bellek içi görüntü değiştirilmiş çıktı aşağıdaki gibi olabilir:
Comparison image path: c:\program files\microsoft sql server\mssql\binn\ssnetlib.dll\ssnetlib.dllScanning section:    .textSize: 56488Range to scan: 0c261000-0c26eca80c263710-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: 3333 errors : 0c260000 (0c263710-0c26516a)
Derleme sırasında sorun gibi daha yakından bakmak için gözden geçirebilirsiniz:
0:038> u ssnetlib!ConnectionClosessnetlib!ConnectionClose]:0c263710 6800000000      push    00c263715 e9278ada03      jmp     MyDLL!MyGetQueuedCompletionStatus  <- A detour has been installed.

SQL ekleme saldırıları izlemek virüsten koruma programları, SQL Server kod detour. Bu senaryoya göre çıkışını! for_each_module "! chkimg v-@# -d Base" uzantısı yyparse SQL Server işlevler 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 nasıl kullandığı hakkında ayrıntılı 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 sitesine gidin:

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 920925 - Son İnceleme: 11/29/2016 18:12:00 - Düzeltme: 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 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, Microsoft 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 KbMttr
Geri bildirim