مشاركة عبر


التحكم في الوصول الدقيق على حساب مستخدم واحد

تقدم هذه المقالة وظيفة تصفية البيانات التي تمكن التحكم في الوصول الدقيق على الاستعلامات التي تعمل على حساب مستخدم واحد (حساب جميع الأغراض أو الوظائف المكونة مع وضع وصول مستخدم واحد). راجع أوضاع الوصول.

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

لماذا تتطلب بعض الاستعلامات على حساب مستخدم واحد تصفية البيانات؟

يمكنك كتالوج Unity من التحكم في الوصول إلى البيانات الجدولية على مستوى العمود والصف (المعروف أيضا بالتحكم في الوصول الدقيق) باستخدام الميزات التالية:

عندما يستعلم المستخدمون عن طرق عرض تستثني البيانات من الجداول المشار إليها أو جداول الاستعلام التي تطبق عوامل التصفية والأقنعة، يمكنهم استخدام أي من موارد الحوسبة التالية دون قيود:

  • مستودعات SQL
  • الحوسبة المشتركة

ومع ذلك، إذا كنت تستخدم حساب مستخدم واحد لتشغيل مثل هذه الاستعلامات، فيجب أن تفي الحوسبة ومساحة العمل بمتطلبات محددة:

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

دعم طرق العرض المجسدة وجداول البث وطرق العرض القياسية

بالإضافة إلى طرق العرض الديناميكية وعوامل تصفية الصفوف وأقنعة الأعمدة، تمكن تصفية البيانات أيضا الاستعلامات على طرق العرض والجداول التالية غير المعتمدة على حساب مستخدم واحد يقوم بتشغيل Databricks Runtime 15.3 وما يلي:

  • طرق العرض القياسية

    في حساب مستخدم واحد يقوم بتشغيل Databricks Runtime 15.3 والإدناه، يجب أن يكون SELECT لدى المستخدم الذي يقوم بتشغيل الاستعلام على طريقة العرض على الجداول وطرق العرض المشار إليها بواسطة طريقة العرض، ما يعني أنه لا يمكنك استخدام طرق العرض لتوفير التحكم الدقيق في الوصول. في Databricks Runtime 15.4 مع تصفية البيانات، لا يحتاج المستخدم الذي يستعلم عن طريقة العرض إلى الوصول إلى الجداول وطرق العرض المشار إليها.

  • جداول الدفق

  • طرق العرض المجسدة

كيف تعمل تصفية البيانات على حساب مستخدم واحد؟

كلما يصل استعلام إلى كائنات قاعدة البيانات التالية، يمرر مورد حساب المستخدم الفردي الاستعلام إلى حساب بلا خادم لإجراء تصفية البيانات:

  • طرق العرض المضمنة على الجداول التي لا يتمتع المستخدم بالامتياز عليها SELECT
  • طرق العرض الديناميكية
  • الجداول التي تحتوي على عوامل تصفية الصفوف أو أقنعة الأعمدة المعرفة
  • طرق العرض المجسدة وجداول الدفق

في الرسم التخطيطي التالي، لدى SELECT المستخدم على table_1و view_2و table_w_rls، التي تم تطبيق عوامل تصفية الصفوف عليها. لا يملك SELECT المستخدم على table_2، والذي تتم الإشارة إليه بواسطة view_2.

رسم تخطيطي يوضح كيفية عمل تصفية البيانات

تتم معالجة الاستعلام على table_1 بالكامل بواسطة مورد حساب مستخدم واحد، لأنه لا يلزم إجراء تصفية. الاستعلامات على view_2 وتتطلب table_w_rls تصفية البيانات لإرجاع البيانات التي يمكن للمستخدم الوصول إليها. تتم معالجة هذه الاستعلامات بواسطة إمكانية تصفية البيانات على الحوسبة بلا خادم.

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

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

يمكنك الاستعلام عن جدول استخدام فوترة النظام لمعرفة مقدار الرسوم التي تم تحصيلها منك. على سبيل المثال، يقسم الاستعلام التالي تكاليف الحساب حسب المستخدم:

SELECT usage_date,
sku_name,
 identity_metadata.run_as,
SUM(usage_quantity) AS `DBUs consumed by FGAC`
FROM system.billing.usage
WHERE usage_date BETWEEN '2024-08-01' AND '2024-09-01'
 AND billing_origin_product = 'FINE_GRAINED_ACCESS_CONTROL'
GROUP BY 1, 2, 3 ORDER BY 1;

عرض أداء الاستعلام عند مشاركة تصفية البيانات

تعرض واجهة مستخدم Spark لحساب مستخدم واحد المقاييس التي يمكنك استخدامها لفهم أداء استعلاماتك. لكل استعلام تقوم بتشغيله على مورد الحساب، تعرض علامة التبويب SQL/Dataframe تمثيل الرسم البياني للاستعلام. إذا شارك استعلام في تصفية البيانات، تعرض واجهة المستخدم عقدة عامل تشغيل RemoteSparkConnectScan في أسفل الرسم البياني. تعرض هذه العقدة المقاييس التي يمكنك استخدامها للتحقيق في أداء الاستعلام. راجع عرض معلومات الحساب في واجهة مستخدم Apache Spark.

تعرض SparkUI عقدة RemoteSparkConnectScan

قم بتوسيع عقدة عامل التشغيل RemoteSparkConnectScan لمشاهدة المقاييس التي تعالج أسئلة مثل ما يلي:

  • ما مقدار الوقت الذي تستغرقه تصفية البيانات؟ عرض "إجمالي وقت التنفيذ عن بعد".
  • كم عدد الصفوف التي بقيت بعد تصفية البيانات؟ عرض "إخراج الصفوف".
  • ما مقدار البيانات (بالبايت) التي تم إرجاعها بعد تصفية البيانات؟ عرض "حجم إخراج الصفوف".
  • كم عدد ملفات البيانات التي تم تقسيمها إلى قسم ولم يكن من الواجب قراءتها من التخزين؟ عرض "تم تقليم الملفات" و"حجم الملفات التي تم تقليمها".
  • كم عدد ملفات البيانات التي تعذر تقليمها ويجب قراءتها من التخزين؟ عرض "قراءة الملفات" و"حجم الملفات المقروءة".
  • من بين الملفات التي كان يجب قراءتها، كم عدد الملفات الموجودة بالفعل في ذاكرة التخزين المؤقت؟ عرض "حجم مرات الوصول إلى ذاكرة التخزين المؤقت" و"ذاكرة التخزين المؤقت يفتقد الحجم. "

القيود

  • لا يوجد دعم لعمليات كتابة الجدول أو تحديثه على الجداول التي تم تطبيق عوامل تصفية الصفوف أو أقنعة الأعمدة عليها.

    على وجه التحديد، عمليات DML، مثل INSERT, DELETEو UPDATEREFRESH TABLEو و MERGEو غير مدعومة. يمكنك فقط قراءة (SELECT) من هذه الجداول.

  • يتم حظر الصلات الذاتية بشكل افتراضي عند استدعاء تصفية البيانات، ولكن يمكنك السماح بها عن طريق تعيين spark.databricks.remoteFiltering.blockSelfJoins إلى خطأ عند الحساب الذي تقوم بتشغيل هذه الأوامر عليه.

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