قواعد الوصول (ACL) أم قواعد العمل الاستعلامية؟
نُشر في ٢٣ مايو ٢٠٢١ · 1 دقائق قراءة
كثيراً ما أجد نفسي في نقاش مع زميل حول ما إذا كان ينبغي استخدام ACL أم Query Business Rule لتقييد الوصول إلى البيانات.
في رأيي الشخصي، ينبغي تقليص استخدام Query Business Rules إلى أدنى حد. إليك لماذا.
المخاوف الجوهرية
سُمّيت قواعد التحكم في الوصول (ACL) بهذا الاسم لسبب: وُجدت لتطبيق الأمان. في معظم المؤسسات، لا يستطيع سوى مدير الأمان تعديل ACLs. Query Business Rules، في المقابل، يمكن لأي شخص يمتلك دور personalize_rules تعديلها — وهذا جمهور أوسع بكثير، ورغم ذلك قد تكون تلك القواعد محورية في نموذج أمان بياناتك.
لا أقول لا تستخدم Query Business Rules أبداً. أقول ينبغي استخدامها بتعمد وبشكل محدود.
متى لا تستخدم Query Business Rule؟
تجنّب Query Business Rules في الحالات التالية:
- إذا كان الاستعلام سيعمل على جدول كبير. تُنفَّذ Query BRs عند كل استعلام على الجدول، مما يضيف حملاً إضافياً. على الجداول الكبيرة (مئات الآلاف من السجلات)، يتراكم هذا الحمل.
- إذا كان الاستعلام يحتوي على كثير من عبارات OR أو معاملات LIKE. هذه أنماط استعلام مكلفة قد تسبب مشاكل أداء على نطاق واسع.
- إذا كان الأداء أولوية. تُقيَّم قواعد ACL بكفاءة أعلى من قِبل المنصة مقارنةً بـQuery BRs.
النموذج الفكري الأفضل
فكّر في ACLs باعتبارها خط دفاعك الأول — متسقة وقابلة للتدقيق وخاضعة للتحكم. يمكن لـQuery Business Rules أن تكون مفيدة في تعديل ما يراه المستخدم في قائمة بناءً على سياقه، لكن لا ينبغي أن تكون آلية الحماية الأساسية للبيانات الحساسة.
عند الشك، اسأل نفسك: إذا عُدِّلت هذه القاعدة أو حُذفت بطريق الخطأ، هل ستنكشف بيانات حساسة؟ إذا كانت الإجابة نعم، استخدم ACL.