فهم التحكم الدقيق في الوصول

مكتمل

في الوحدة السابقة ، نظرت في منح أو رفض الوصول إلى الجداول بأكملها. يعمل هذا عندما يتمكن كل مستخدم معتمد من رؤية كل صف وعمود ، ولكن في السيناريوهات الحقيقية ، غالبا ما تحتاج إلى عرض جزء فقط من مجموعة البيانات. قد تحتاج إلى إخفاء الصفوف التي لا يحق للمستخدم عرضها أو تنقيح أو إخفاء أعمدة معينة تحتوي على سمات حساسة، أو تحويل القيم جزئيا بحيث تظل مفيدة دون تسريب التفاصيل الكاملة. بدلا من تكرار الجداول أو الاحتفاظ بنسخ استخراج متعددة، يمكنك تطبيق التحكم الدقيق في الوصول. في كتالوج Databricks Unity، يمكنك تنفيذ تحكم دقيق باستخدام أحد النهجين:

  • أمان الصفوف والأعمدة: الطريقة الحديثة المفضلة ، وتتكون من إخفاء الأعمدة وتصفية الصفوف.
  • طرق العرض الديناميكية: النمط السابق الذي لا يزال يحتوي على حالات استخدام صالحة.

رسم تخطيطي يوضح النهجين للتحكم في الوصول الدقيق الحبيبات.

في هذه الوحدة ، ستتعلم ماهية كل نهج ، ومتى تستخدمه ، ولماذا يفضل أحدهم بشكل عام اليوم. ستستكشف بناء جملة SQL المحدد في الوحدة التالية ، لذلك نبقى هنا على المستوى المفاهيمي.

لماذا يهم التحكم الدقيق

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

الأهداف النموذجية التي ستتناولها:

  • إخفاء العمود: إظهار حضور العمود ولكن إخفاء (أو تحويل) قيمه الحساسة لمعظم المستخدمين.
  • تصفية الصفوف: منع السجلات بأكملها التي يجب ألا يشاهدها المستخدم أو المجموعة.
  • التحويل الجزئي: احتفظ بالأداة التحليلية (على سبيل المثال، آخر رقمين، مجال البريد الإلكتروني) دون الكشف عن المعرفات الكاملة.

رسم تخطيطي يوضح حالات استخدام المجتمع للتحكم في الوصول الدقيق

أمان الصفوف والعمود

يتم تنفيذ أمان الصف والعمود من خلال مفهومين أساسيين:

  • إخفاء العمود: يمكنك إقران دالة إخفاء بعمود معين. عندما يستعلم مستخدم عن الجدول، يستدعي كتالوج الوحدة هذه الوظيفة لتحديد ما إذا كان سيتم إرجاع القيمة الحقيقية أو عنصر نائب منقح أو إصدار تم تحويله. عادة ما تحدد دالة واحدة لكل عمود مقنع.

  • تصفية الصفوف: يمكنك إقران دالة عامل تصفية بالجدول. ترجع هذه الدالة منطقية تحدد ما إذا كان كل صف مرئيا لكيان الاستعلام. يمكن أن تحكم وظيفة واحدة كافة القواعد على مستوى الصف لهذا الجدول.

يمكنك إنشاء دالات SQL معرفة من قبل المستخدم تحتوي على منطق القرار (على سبيل المثال، التحقق من عضوية مجموعة المستخدم المستعلم عنه). نظرا لأن هذه الوظائف هي كائنات قابلة للتأمين تماما مثل الجداول ، فإنك تقرر أيضا مكان إقامتها (المخطط / الكتالوج) ومن يمكنه تغييرها أو تنفيذها. يمكنك بعد ذلك ربطها مباشرة بالبيانات الوصفية للجدول. في هذه المرحلة، يستفيد أي شخص يستعلم عن الجدول من تعريف موثوق واحد للإخفاء والتصفية - دون الحاجة إلى طبقة إضافية.

الخصائص الرئيسية التي يجب أن تستوعبها:

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

المناظر الديناميكية

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

رسم تخطيطي يوضح مفهوم العرض الديناميكي.

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

الخصائص التي يجب ملاحظتها:

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

لماذا يفضل أمان الصفوف والعمود على العروض الديناميكية

عند الاختيار بين هذين الطريقتين اليدويتين، يجب أن تختار أمان الصف والعمود لأن:

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

ملاحظة

كل من أمان الصفوف والعمود والعروض الديناميكية هما نهجان يدوي لكل جدول. توفر Databricks أيضا Attribute-Based Access Control (ABAC)، والتي تتيح لك تحديد سياسات مركزية تنطبق تلقائيا على جميع الجداول التي تطابق وسم محكومة عبر مخطط أو كتالوج كامل — دون أي تكوين لكل جدول. أصبح ABAC الآن هو النهج الموصى به لمعظم حالات الاستخدام. يتم تغطيته بالتفصيل في وحدة كائنات كتالوج Govern Unity .

عندما لا تزال الرؤية الديناميكية منطقية

يجب مراعاة طرق العرض الديناميكية بدلا من ذلك (أو بالإضافة إلى ذلك) عندما:

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

مقارنة أمان الصفوف والعمود مع رؤى ديناميكية

إليك مقارنة بين النهجين اليدويين جنبا إلى جنب، حتى تتمكن من رؤية التنازلات وتحديد ما يناسب احتياجاتك أكثر. للحصول على مقارنة ثلاثية تشمل ABAC، راجع وحدة كائنات كتالوج Govern Unity .

Dimension أمان الصفوف والأعمدة طرق العرض الديناميكية
الصيانه يقلل من الأجزاء المتحركة من خلال فرض الأمان على مستوى الطاولة. المزيد من الكائنات لإدارتها في حالة إنشاء طرق عرض متعددة.
المرونة يقتصر على ما يتم تخزينه في الجدول. يمكن الجمع بين جداول متعددة مباشرة للحصول على تركيبات مرنة.
إدارة الكائنات عدد أقل من الأشياء بشكل عام ؛ يبسط المنح وعمليات التدقيق. المزيد من الأشياء للحكم. قد تحتاج المنح إلى إدارتها على مستوى العرض والجدول.
أنماط القراءة / الكتابة يدعم الاستعلام والتحديث السلس باستخدام الإخفاء أو التصفية المطبقة على الجدول. عادة للقراءة فقط. تتطلب أنماط الكتابة وصولا مباشرا إلى الجدول.
حدود التجريد يعرض تصميم التخزين بشكل مباشر. يوفر طبقة عرض تقديمي منفصلة عن وحدة التخزين الأساسية.

سير العمل النموذجي

اتبع هذه الخطوات لتصميم النهج الصحيح والحفاظ على نموذجك آمنا وقابلا للصيانة:

  1. حدد الأعمدة الحساسة وقواعد التجزئة على مستوى الصف (على سبيل المثال، المستندة إلى المنطقة والقائمة على الأدوار).
  2. حدد ما إذا كنت بحاجة حقا إلى تجميع متعدد الجداول أو تجريد صارم. إذا لم يكن الأمر كذلك، ففضل أمان الصف والأعمدة.
  3. بالنسبة لأمان الصفوف والأعمدة: قم بتصميم الحد الأدنى من الوظائف المعرفة من قبل المستخدم - واحدة لكل عمود مقنع واختياريا وظيفة تصفية صف واحدة - التي تقيم كيان الاستعلام.
  4. قم بإرفاق هذه الدالات بالجدول بحيث تقوم الاستعلامات بفرض المنطق تلقائيا.
  5. بالنسبة للطرق العرضية الديناميكية (عند التبرير): قم بصياغة طريقة عرض واحدة تطبق تعبيرات CASE ومسندات WHERE. قم بإنشاء طرق عرض إضافية فقط عندما يحتاج الجمهور إلى تعريضات عرضية مختلفة جوهريا.
  6. راجع بشكل دوري ما إذا كانت المتطلبات المتطورة لا تزال تبرر كل طريقة عرض ديناميكية أو ما إذا كان الدمج في أمان الصف والأعمدة ممكنا الآن.

المزالق الشائعة

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

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