كيفية إعداد التحكم في الوصول على الكائنات المتزامنة في تجمع SQL بدون خادم

تلميح

Microsoft Fabric Data Warehouse هو مستودع علائقي على نطاق مؤسسي قائم على أساس بحيرة البيانات، مع بنية جاهزة للمستقبل، وذكاء اصطناعي مدمج، وميزات جديدة. إذا كنت جديدا في مستودع البيانات، ابدأ ب Fabric Data Warehouse. يمكن لأحمال عمل تجمع SQL المخصصة الحالية الترقية إلى Fabric للوصول إلى قدرات جديدة في علوم البيانات، والتحليلات اللحظية، والتقارير.

في Azure Synapse Analytics، تشارك Spark databases و tables مع مجموعة SQL بدون خادم. قواعد بيانات البحيرة، وباركيه، والجداول المدعومة من CSV التي تم إنشاؤها بواسطة Spark متاحة تلقائيا في مجموعة SQL بدون خادم. تسمح هذه الميزة باستخدام تجمع SQL بدون خادم لاستكشاف واستعلام البيانات المعدة باستخدام مجموعات Spark. في الرسم البياني أدناه، يمكنك رؤية نظرة عامة على البنية المعمارية عالية المستوى للاستفادة من هذه الميزة. أولا، تقوم Azure Synapse Pipelines بنقل البيانات من التخزين المحلي (أو غيره) إلى Azure Data Lake Storage. يمكن لسبارك الآن إثراء البيانات، وإنشاء قواعد بيانات وجداول يتم مزامنتها مع Synapse SQL بدون خادم. لاحقا، يمكن للمستخدم تنفيذ استعلامات عشوائية فوق البيانات المخصية أو تقديمها إلى Power BI على سبيل المثال.

إثراء في Spark، وخدم باستخدام مخطط SQL.

الوصول الكامل للمسؤول (sysadmin)

بمجرد مزامنة هذه قواعد البيانات والجداول من Spark إلى تجمع SQL بدون خادم، يمكن استخدام هذه الجداول الخارجية في تجمع SQL بدون خادم للوصول إلى نفس البيانات. ومع ذلك، فإن الكائنات في تجمع SQL بدون خادم تكون للقراءة فقط بسبب الحفاظ على الاتساق مع كائنات مجموعات Spark. تجعل هذه القيود المستخدمين الذين لديهم أدوار Synapse SQL Administrator أو Synapse Administrator فقط يمكنهم الوصول إلى هذه الكائنات في تجمع SQL بدون خادم. إذا حاول مستخدم غير مسؤول تنفيذ استعلام على قاعدة البيانات/الجدول المتزامن، سيتلقى خطأ مثل: External table '<table>' is not accessible because content of directory cannot be listed. رغم أن لديهم وصول إلى بيانات على حساب التخزين الأساسي.

نظرا لأن قواعد البيانات المتزامنة في مجموعة SQL بدون خادم هي للقراءة فقط، فلا يمكن تعديلها. إنشاء مستخدم أو منح صلاحيات أخرى سيفشل إذا تم المحاولة. لقراءة قواعد البيانات المتزامنة، يجب أن يكون لديك صلاحيات مميزة على مستوى الخادم (مثل مسؤول النظام). هذا القيد موجود أيضا في الجداول الخارجية في تجمع SQL بدون خادم عند استخدام Synapse Link Azure لجداول Dataverse وجداول قواعد بيانات lake.

الوصول غير المسؤول إلى قواعد البيانات المتزامنة

المستخدم الذي يحتاج إلى قراءة البيانات وإنشاء التقارير عادة لا يملك صلاحية كاملة من المسؤول (مسؤول نظام). عادة ما يكون هذا المستخدم محلل بيانات يحتاج فقط لقراءة وتحليل البيانات باستخدام الجداول الموجودة. لا يحتاجون إلى خلق أشياء جديدة.

يجب أن يكون المستخدم الذي يملك أقل صلاحية قادرا على:

  • اتصل بقاعدة بيانات يتم تكرارها من Spark
  • اختر البيانات عبر جداول خارجية والوصول إلى بيانات ADLS الأساسية.

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

-- Creating Azure AD login (same can be achieved for Azure AD app)
    CREATE LOGIN [login@contoso.com] FROM EXTERNAL PROVIDER;
    go;
    
    GRANT CONNECT ANY DATABASE to [login@contoso.com];
    GRANT SELECT ALL USER SECURABLES to [login@contoso.com];
    GO;

ملحوظة

يجب تنفيذ هذه العبارات على قاعدة البيانات الرئيسية، حيث أن جميع هذه الأذونات على مستوى الخادم.

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

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

يمكن إدارة الوصول إلى البيانات على حساب التخزين عبر ACL أو أدوار Storage Blob لمالك/قارئ/مساهم العادية لمستخدمين/مجموعات Microsoft Entra. بالنسبة لمبادئ الخدمة (تطبيقات Microsoft Entra)، تأكد من استخدام إعداد ACL.

ملحوظة

  • إذا كنت تريد حظر استخدام OPENROWSET فوق البيانات، يمكنك استخدام DENY ADMINISTER BULK OPERATIONS to [login@contoso.com]; للمزيد من المعلومات، قم بزيارة صلاحيات DENY Server.
  • إذا كنت ترغب في منع استخدام مخططات معينة، يمكنك استخدامها DENY SELECT ON SCHEMA::[schema_name] TO [login@contoso.com]; . لمزيد من المعلومات، قم بزيارة DENY Schema Permissions.

الخطوات التالية

لمزيد من المعلومات، راجع مصادقة SQL.