تحويلات أو التقنيات المشابهة قد يؤدي سلوك غير متوقع مع SQL Server

هام: تمت ترجمة هذه المقالة باستخدام برامج مايكروسوفت للترجمة الآلية ومن المحتمل ان يتم تحريرها او تدقيقها بعد ذلك من خلال تكنولوجيا منصة مجموعات الترجمة(CTF) او من خلال مترجم بشري. تقدم لك شركة مايكروسوفت هذه المقالات المترجمة بشكل آلي او بالترجمة البشرية او بعد تحريرها وتدقيقها من قبل مجموعات الترجمة حتى تمكنكم من الوصول إلى جميع المقالات الموجودة في قواعد المعرفة لديها بلغات مختلفة. إلا أن المقالات المترجمة قد تحتوي على أخطاء في المفردات او بناء الجمل او النحو. وعليه، فإن شركة مايكروسوفت ليست مسؤولة عن اية أخطاء او عدم دقة في الترجمة او أية أضرار قد تحدث نتيجة أخطاء في ترجمة محتويات النص او استخدامه من قبل العملاء.

اضغط هنا لرابط المقالة باللغة الانجليزية920925
الموجز
صادف "دعم microsoft" عدة منتجات الجهات الخارجية التي تستخدم الطرق الالتفافية لتوفير وظائف إضافية إلى Microsoft SQL Server. هذه هي عادة التدقيق الوظائف. لا توجد أية عملية إصدار الشهادات لتحويلات خارجية لتطبيقات Microsoft. لذلك، بشكل عام، تعارض Microsoft بشدة استخدام الطرق الالتفافية.

الميزات التي تستخدم الطرق الالتفافية أو التقنيات المشابهة لتغيير سلوك SQL Server قد تتسبب المشكلات التالية:
  • مشاكل الأداء
  • نتائج غير صحيحة
  • تلف القرص والذاكرة
  • فقد استجابة ملقم SQL
  • إنهاء عملية غير متوقعة
  • عدم القدرة على استخدام عمليات تشخيص موحدة، مثل الدالة fn_get_sql والأمر DBCC INPUTBUFFER
  • استخدام وحدة المعالجة المركزية 100% وقاعدة بيانات الاسترداد أوقات طويلة عند استخدام الجداول OLTP في الذاكرة في SQL Server
قد تواجه هذه المشاكل نفسها عند استخدام البرامج غير التابعة ل Microsoft مثل الملقمات المرتبطة أو الإجراءات الموسعة كائنات COM ضمن عملية SQL Server. يتم إخفاء تحويلات من عرض ديسيبل. لإظهار التفاف، يجب استخدام التقنيات الموضحة في قسم "مزيد من المعلومات" الذي يتبع. ملقمات المرتبطة وكائنات COM والإجراءات الموسعة يكون التسجيل صريحة وتعريف الواجهات.

ملاحظة: وبسبب الطابع الخفي للطرق الالتفافية ونقص واجهات المنشورة، لا تقدم Microsoft خدمات الدعم لميزات الجهة الخارجية التي تستخدم الطرق الالتفافية أو التقنيات المشابهة. جهة أخرى مسؤولة عن دعم التعليمات البرمجية الخاصة به، كما سيكون مسؤولاً عن الملقم المرتبط الخاص به أو إذنها البعض النشر.

أنها ممارسة شائعة في الدورة التدريبية المعتادة لاستكشاف الأخطاء وإصلاحها، لخدمات دعم Microsoft لتطلب منك تعطيل الوظائف غير الأساسية وتعطيل أو إزالة المكونات من جهة خارجية والتقنيات وأخرى مماثلة. يحاول Microsoft دائماً للحد من أثر المشكلة عندما يتم التعرف المشكلة. بعد أن اعتبرت المسألة لا علاقة لها بالوظائف أو منتجات جهة خارجية، تلك الوظائف أو منتجات جهة خارجية يمكن إدخال مرة أخرى في الإنتاج.

لم يكن عزمنا على كشف التفاف وحينها مثيل SQL Server لتكون غير مدعومة. مايكروسوفت تعترف بعض تطبيقات ضرورية. ومع ذلك، يتطلب Microsoft إمكانية التحقق من صحة المحسنة التحويلات. التفاف من شركة معروفة وموثوق بها يختلف بالتأكيد التفاف غير متوقع المستخدمة من قبل أحد فيروسات. لا تضمن Microsoft أو ترخص هذه منتجات الجهات الخارجية أو كيفية تفاعل منتجات جهة خارجية مع منتجات Microsoft وخدماتها. بدلاً من ذلك، موردي الجهات الأخرى المسؤولة عن تحديد والجدارة بالثقة لمنتجاتها وخدماتها. إذا كان لديك أية أسئلة حول خدمات ومنتجات الجهات الخارجية، يرجى الوصول إلى جهة أخرى قابلة للتطبيق. Microsoft غير مسؤولة عن أية مشكلات ناتجة عن استخدام منتجات الجهات الخارجية أو الخدمات فيما يتصل بخادم SQL.
معلومات أخرى
توفر الطرق الالتفافية قدرات محسنة والمقايضة مخاطر/المكاسب. بشكل عام، عندما ينفذ عطف في SQL Server، يتم حقن التعليمات البرمجية الغير في مساحة العملية. هذا النشاط قد يتغير سلوك SQL Server.

فيما يلي بعض الأمثلة على حالات والآثار الجانبية المحتملة:
  • تفحص الحزم (TDS) حركة مرور الشبكة الواردة وتغييرها. تتم إضافة التفاف في مكان هامة في سلسلة عملية الشبكة net_readdata. دورات وحدة المعالجة المركزية حتى 100 في هذا الموقع قد يقلل صافي معدل المجموعة.

    قد يؤدي تغيير بيانات TDS الفعلي إلى سكريبليرس الذاكرة. هذه المشكلة قد أدى استقرار SQL Server مختلفة وفي تلف في البيانات. قد تتسبب مشاكل حزمة TDS لتغيير جزئيا وإعادة النفايات إلى SQL Server. تسجيل المرافق في هذا المستوى قد يعرض كلمات المرور والبيانات الحساسة الأخرى التي تتبع مصممة لمنع وللمساعدة في تأمين SQL Server.
  • إجراءات تحليل SQL Server يتم ديتوريد لتغيير السلوك. فيما يلي بعض الآثار الجانبية المحتملة:
    • خطط التنفيذ لا تطابق نص الاستعلام الفعلي.
    • إرسال أمر مرة واحدة فقط من قبل العميل. ومع ذلك، يتم تنفيذ الأمر عدة مرات.
    • يوضح إخراج التتبع الأمر الأصلي بدلاً من استعلام مختلف.
    • يظهر الأمر DBCC INPUTBUFFER الأمر الأصلي بدلاً من استعلام مختلف.
    • تظهر الدالة fn_get_sql بيانات غير صحيحة. بالإضافة إلى ذلك، يعتبر الدالة fn_get_sql عرضه للاستثناءات ونتائج غير صحيحة. يستخدم من قبل العديد من حلول مراقبة الدالة fn_get_sql وقد يسبب مشاكل في مراقبة الحلول.
    • العام جدولة وضع المستخدم (UMS) وجدولة نظام تشغيل ملقم SQL (SQLOS) قد توقف. وهذا يؤدي إلى فقدان استجابة ملقم SQL والتغييرات في أداء وانقطاع.
  • واجهات برمجة تطبيقات Win32 التي توفر ميزات الأمان المحسنة هي ديتوريد. اعتماداً التطبيق، قد يعرض مرافق التسجيل في هذا المستوى كلمات المرور والبيانات الحساسة الأخرى. عام مقاطعة مس وجدولة SQLOS. وهذا يؤدي إلى فقدان استجابة ملقم SQL وانقطاع.
  • تعديل جداول الدالة وإعادة توجيه المهام الأساسية SQL Server أو Windows API غير معتمدة ضمن عملية SQL Server. هذا يؤدي إلى عدم الاستقرار وسلوك غير متوقع في الأداء الوظيفي SQL Server.
المثال التالي يوضح أن kernel32! جيتقويويدكومبليتيونستاتوس تم ديتوريد الدالة.
MyDLL!MyGetQueuedCompletionStatusssnetlib!ConnectionReadAsyncWait
تم استبدال التعليمة الأولى مع تعليمة الانتقال في التجميع للدالة جيتقويويدكومبليتيونستاتوس .
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
إظهار التجميع للتعليمات البرمجية التي تم إدراجها النشاط ديتوريد واستدعاء الملف MyDLL.
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 لتحديد ما إذا كان يتم استخدام الطرق الالتفافية. للقيام بذلك، اتبع الخطوات التالية:

ملاحظة: دائماً اختبر هذا الأسلوب قبل أن تحاول في الإنتاج. عند استخدام أدوات التصحيح ل Windows، قد يتوقف العملية عند تشغيل الأوامر. قد يؤثر هذا السلوك على خادم إنتاج.
  1. إرفاق أدوات التصحيح ل Windows لخادم SQL أو تحميل ملف تفريغ مستخدم كاملة.
  2. إصدار الأمر مصحح الأخطاء التالية. يفحص هذا الأمر كل صورة صورة على القرص لتحديد ما إذا كان تم حقن الطرق الالتفافية.
    !for_each_module "!chkimg -v @#Base -d"
  3. فصل مصحح الأخطاء.
للحصول على أدوات التصحيح ل Windows، انتقل إلى موقع Microsoft التالي على الويب: إذا تم تعديل الصورة في الذاكرة، الإخراج قد ما يلي:
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)
يمكنك مراجعة الجمعية إمعان النظر في هذه المسألة كما يلي:
0:038> u ssnetlib!ConnectionClosessnetlib!ConnectionClose]:0c263710 6800000000      push    00c263715 e9278ada03      jmp     MyDLL!MyGetQueuedCompletionStatus  <- A detour has been installed.

يمكن الالتفاف برامج مكافحة الفيروسات التي تعقب حقنه هجوم SQL البرمجية SQL Server. في هذا السيناريو، الإخراج! for_each_module "! Base تشكيمج @#-v-d" ملحق قد تشير إلى أن يعمل ملقم SQL ييبارسي ويتم تعديل ex_raise2 :

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. لمزيد من المعلومات حول الطرق الالتفافية والتقنيات المشابهة، انتقل إلى موقع مركز أبحاث Microsoft التالي على الويب:

تحذير: تمت ترجمة هذه المقالة تلقائيًا

Vlastnosti

ID článku: 920925 - Poslední kontrola: 08/31/2016 15:20:00 - Revize: 5.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, 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 KbMtar
Váš názor