Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Tarayıcınız desteklenmiyor

Siteyi kullanmak için tarayıcınızı güncelleştirmeniz gerekir.

Internet Explorer'ın en son sürümüne güncelleştirin

Detours veya benzer teknikler SQL Server ile 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 için Microsoft SQL Server ek işlevleri sağlamak üzere detours kullanın birçok üçüncü taraf ürünleri 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
Bağlantılı sunucular, genişletilmiş yordamlar veya SQL Server işlemi içinde COM nesneleri gibi Microsoft olmayan yazılımını 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 teknikleri 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 özellikler 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 olarak benimsenen uygulama, sorun giderme, gerekli olmayan işleri devre dışı bırakmak için devre dışı bırakmak ve üçüncü taraflara ait bileşenlerin ve diğer, benzer teknikler kaldırmak için sormak Microsoft Destek Hizmetleri, her zamanki Kurstaki olur. Microsoft sorunu tanımlayan ederken sorunun Ayak izi azaltmak her zaman çalışır. Sorun olarak belirlendikten sonra işlerin 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, desteklenebilirlik doğrulamak gerekir. Saygın ve güvenilir bir şirketten bir detour bir virüs tarafından kullanılan bir beklenmeyen detour kesinlikle farklıdır. Microsoft, garanti ve bu üçüncü taraf ürünler veya üçüncü taraf ürünleri Microsoft ürünleri ve Hizmetleri ile nasıl etkileşimde bulunduğunu onaylayın. 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 ile ilgili herhangi bir sorunuz varsa, lütfen ilgili üçüncü taraf iletişim kurarsınız. Microsoft, üçüncü taraf ürünleri veya hizmetleriyle bağlantılı olarak SQL Server 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'ın 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. Bu konumda bile 100 CPU döngülerini 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!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 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, 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 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 aşağıdaki 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 senaryoda, çıktısını! for_each_module "! chkimg v-@# -d Base" uzantısı yyparse SQL Server çalışır 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: 03/20/2015 22:10:00 - Düzeltme: 4.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
  • 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
n.protocol) + "//c.microsoft.com/ms.js'><\/script>");