Power BI / متوسط: السياق والجودة والوصول / الدرس 11
أمان الصفوف وحدود الوصول
افصل قيود صفوف البيانات عن مرشحات التقرير وأدوار المساحة وصلاحيات التوزيع، وصمم حالات قبول صريحة للهوية.
في هذه الصفحة
أهداف الدرس
- شرح أدوار RLS وانتقال مرشحاتها.
- تمييز تنفيذ القيود للمشاهد عن وصول أدوار التحرير.
- اختبار الهويات المسموحة والمرفوضة وغير المتوقعة ببيانات افتراضية.
افصل الاختيار عن الأمان
يساعد slicer القارئ على اختيار بيانات، ولا يمثل حدا للتحكم في الوصول. ولا يثبت إخفاء صفحة أو حقل أن المستخدم لا يستطيع الاستعلام عن البيانات الأساسية عبر مسار آخر مصرح له. تعرف RLS الصفوف المسموحة داخل النموذج الدلالي للمستخدمين والأدوار التي تنطبق عليها. يعتمد انتقالها على العلاقات وتصميم الأمان. ابدأ بالهوية ومجتمع البيانات المسموح ومسار الاستهلاك المدعوم. يستخدم المسار منطقتي North وSouth افتراضيتين بإيرادي 50 و20، ولا يقرأ هويات فعلية أو إعدادات مستأجر أو بيانات مقيدة.
عرف الدور وسياقه
المقطع الأول مرشح دور ثابت على DimRegion. إذا وجدت علاقة فعالة من المنطقة إلى الوقائع، فيفترض أن يرى مشاهد North الذي تنطبق عليه القيود وقائعها ومجموعها 50. لا يسند تعريف الدور وحده مستخدمي الخدمة ولا يتحقق من العلاقة. يمكن للأمان الديناميكي استخدام تخطيط هوية ومنطقة محكوم ودالة هوية مدعومة، لكن الهوية المجهولة تحتاج تصميما يمنع الوصول افتراضيا. لا تضع أسماء مستخدمين فعلية أو رموزا في مثال عام. القاعدة غير منفذة وتفترض Import؛ ولأنماط الاتصال الأخرى قيود مختلفة.
DimRegion[Region] = "North"
افترض تعريف المرشح على DimRegion وانتقاله بالعلاقة الفعالة المقصودة. ليس نشرا أمنيا كاملا أو اختبار خدمة.
افهم حدود أدوار المساحة
تنص إرشادات RLS الرسمية على تقييد مستخدمي Viewer في مساحة العمل، بينما لا تقيد أدوار Admin وMember وContributor بالطريقة نفسها. لذلك قد يعطي الاختبار كمؤلف فقط ضمانا خاطئا عن سيناريو المستهلك. مشاركة التقرير وجمهور التطبيق وصلاحية Build وقيود الصفوف قرارات مترابطة لكنها مختلفة. راجع المسار الموثق بدقة، ولا تفترض أن خانة واحدة تؤمن كل تصدير أو استعلام. يفيد اختبار Desktop الشخصي في منطق الدور، لكنه لا يثبت عضوية الخدمة وصلاحياتها الفعلية. لا تنشر مادة حساسة لمجرد عرض الدرس.
نمذج مجتمعات الأدوار المتعددة
قد توسع العضوية في أكثر من دور RLS مجتمع الصفوف المسموح عبر جمع السماحات؛ فلا تفترض أنها تنشئ تقاطع منع مقيدا. يمثل البرنامج الثاني اتحادا بسيطا لمجموعات مناطق. وليس محرك تفويض الخدمة، ويغفل تفاصيل العلاقات والصلاحيات. قد يرى مستخدم أسند إليه North وSouth خطأ أكثر مما توقعه مصمم راجع North وحدها. أدرج عضوية المجموعات وتخطيط الهوية في المراجعة الأمنية. لا تحاول مقاومة سماح واسع بمرشح عرض يستطيع المستهلك تغييره أو تجاوزه عبر مسار مسموح آخر.
north_role = {"North"}
south_role = {"South"}
allowed = north_role | south_role
print(sorted(allowed))
print(sum(value for region, value in [("North", 50), ("South", 20)] if region in allowed))
['North', 'South']
70
يسمح الاتحاد التعليمي بالمنطقتين والمجموع70، ولا يختبر RLS الفعلية أو الهوية أو أدوار المساحة.
اكتب حالات قبول الأمان
عرف مشاهد North مخولا ومشاهد South وهوية غير متوقعة وعضوا متعدد الأدوار وحالة دور تحرير. حدد الصفوف والمجاميع المتوقعة، لا مجرد إمكان فتح التقرير. تحقق من العلاقات ومن سيناريوهات الاستهلاك والتصدير المدعومة باختبارات مستقلة مصرح بها. ينفذ المسار نموذج اتحاد مجموعات فقط، ولا يسجل دخولا أو يسند دورا أو يرسل طلب خدمة. لا يثبت الناتج المحلي تنفيذ القيود. يفصل التسليم منطق الدور وعضوية الهوية وصلاحيات المساحة والوصول المرصود، ويحفظ كل سؤال لم يحسم، بدلا من وصف صفحة مخفية بأنها آمنة.
الأخطاء الشائعة وإصلاحها
تقديم slicer على أنه أمان صفوف
- لماذا يحدث؟
- اختلط الاختيار بتنفيذ الوصول في النموذج.
- كيف تصلحه؟
- عرف قيود الصف الفعلية وراجع مسارات الاستهلاك المسموحة.
- كيف تتجنب تكراره؟
- افصل مرشحات العرض عن ادعاءات الأمان.
استخدام وصول المؤلف للتحقق من سيناريو Viewer
- لماذا يحدث؟
- أُهملت فروق أدوار المساحة.
- كيف تصلحه؟
- اختبر هوية المستهلك وصلاحياته وفق القواعد الرسمية.
- كيف تتجنب تكراره؟
- افصل حالات المحرر والمشاهد.
توسيع البيانات بصورة غير متوقعة بتعدد الأدوار
- لماذا يحدث؟
- افتُرض تقاطع السماحات بصورة مقيدة.
- كيف تصلحه؟
- راجع كل العضويات والمجتمع المسموح الناتج.
- كيف تتجنب تكراره؟
- احفظ حالة قبول متعددة الأدوار صريحة.
اختبر فهمك
1. لماذا لا يثبت إخفاء South في الصفحة وصولا مقتصرا على North؟
اعرض الحل المشروح
مرشح الصفحة حالة عرض، وقد يتيح تقرير أو استعلام أو تصدير آخر مسموح اختيارا مختلفا. يحتاج الأمان قيود نموذج تنطبق فعلا مع إعداد صحيح للهوية والصلاحيات. عرف الصفوف المتوقع رفضها، واختبر سيناريو المستهلك الحقيقي بدليل مصرح به. لا تعتمد على مظهر العرض الحالي؛ فظهور North وحدها قد يكون نتيجة اختيار قابل للتغيير لا نتيجة تفويض.
2. ينتمي مستخدم لدوري North وSouth. لماذا تدخل العضويتان النتيجة المتوقعة؟
اعرض الحل المشروح
يمكن أن تتجمع مجتمعات الصفوف المسموحة؛ لذلك قد تقلل مراجعة دور واحد يبدو مقيدا من تقدير الوصول. يسمح النموذج التعليمي بالمنطقتين ومجموع 70. ويتوقف السلوك الفعلي أيضا على النموذج والمساحة. صحح العضوية في مصدرها المحكوم، بدلا من إخفاء الوصول الزائد بمرشحات التقرير. يجب أن تعكس النتيجة المتوقعة كل دور ينطبق على الهوية، لا الدور الذي أراد المصمم اختباره فقط.
أهم ما تعلمته
- RLS والعضوية وصلاحيات المساحة طبقات دليل مختلفة.
- يجب أن يختبر قبول الأمان المسموح والمرفوض بدور المستهلك المقصود.