NOLOCK خادم SQL على الاستفسارات تشغيل للحصول على ترخيص

StackOverflow https://stackoverflow.com/questions/284163

سؤال

وأثناء لنا الدخول للتطبيق وهناك العديد من الاستفسارات ركض، في جميع أنحاء التحقق من صحة تسجيل الدخول. في تقييمها لاحظت أن واحدة من الاستعلامات تشغيل دون التلميح NOLOCK.

وهناك لا يبدو أن هناك أي خطر معين من قراءة القذرة لأن البيانات سيكون من الصعب تغيير أي وقت مضى.

والتفكير فيه من هجوم نوع DOS محاولة من قبل شخص يحاول تسجيل الدخول فشلت مرارا وتكرارا وأنا مما يشير إلى أن عدم وجود NOLOCK يخفض عتبة لدينا للفشل.

وأعتقد أنه هو المرجح للغاية نتيجة لهجوم DOS (أعتقد أن خادم الويب تذهب الأول) ولكن يجب إضافة NOLOCK جعله يذهب من غير المرجح أن يكون مستحيلا.

وهكذا، أنا يجري المفرطة أو تافهة؟

هل كانت مفيدة؟

المحلول

وبعد NOLOCKs أو لا أقل من همومك مع محاولة دوس ضد الخادم الخاص بك.

وأود أن لا عرق فيه.

إذا، كما تقول، فإن البيانات نادرا ما يتغير، وبعد ان NOLOCKs هناك ربما لا تؤذي.

نصائح أخرى

نعم، كنت كونها trival بشكل مفرط.

إذا كنت تتعرض لهجمات DOS، NOLOCK على الدعوة ترخيص SQL هو أقل من همومك. تنفيذ بعض كشف DOS، وتتبع فشل + دواسة الوقود، وحتى بعض التوقفات المخطط لها لن تؤثر على المستخدم ولكن من شأنه أن يبطئ هجوم ...

ووNOLOCK يحتمل تحسين الأداء الخاص بك إذا كنت استدعاء هذا الاستعلام في كثير من الأحيان وخاصة في المعاملات أوسع.

والنظر في طبيعة قراءة القذرة - ان نافذة الوقت الذي يمكن أن يحدث أن تكون حاسمة حقا؟ مثلا حيث يمكنك إضافة أو إزالة شخص من دور المرخص.

في السيناريو إضافة ستفشل قراءة القذرة على تلك المحاولة. (تم رفض الوصول)

في السيناريو إزالة فإن قراءة القذرة العمل على تلك المحاولة. (الوصول منح)

إذا تغير البيانات من خلال التشغيل اليدوي على سبيل المثال التفاعل البشري - الهامش ل "الكمون" عادة ما يكون أعلى من ذلك بكثير / غير محدد من قواعد البيانات الخاصة بك

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

وأنت يجب أن تكون قلقة حول هذا السيناريو معين على التخلي عن ميزة أداء NOLOCK.

وأنت من شأنه أن يحمي الجدول الخاص بك أفضل بكثير من خلال النظر في أذونات إليها. جدول مثل هذا لا ينبغي أن تسمح لأي الوصول المباشر، ينبغي أن تكون جميع الوصول من procs المخزنة وتعيين الأذونات عليها بدلا من ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top