Use managed identities to Access قاعدة بيانات Azure SQL or Azure Synapse Analytics from an Azure Stream Analytics job

يدعم Azure Stream Analytics Managed Identity authentication لمصارف قاعدة بيانات Azure SQL و Azure Synapse Analytics الإخراج. تلغي الهويات المدارة قيود طرق المصادقة القائمة على المستخدم، مثل الحاجة لإعادة المصادقة بسبب تغييرات كلمة المرور أو انتهاء صلاحية رموز المستخدم التي تحدث كل 90 يوما. عند إزالة الحاجة إلى المصادقة يدويًا، يمكن أن تكون عمليات توزيع Stream Analytics تلقائية بالكامل.

الهوية المدارة هي تطبيق مدار مسجل في معرف Microsoft Entra يمثل وظيفة Stream Analytics معينة. يتم استخدام التطبيق المُدار للمصادقة على مورد مستهدف. توضح لك هذه المقالة كيفية تفعيل Managed Identity لقاعدة بيانات قاعدة بيانات Azure SQL أو مخرجات Azure Synapse Analytics لوظيفة Stream Analytics عبر بوابة Azure.

نظرة عامة

توضح لك هذه المقالة الخطوات اللازمة لربط وظيفة تحليلات التدفق الخاصة بك بقاعدة بيانات قاعدة بيانات Azure SQL أو مجموعة SQL Azure Synapse Analytics باستخدام وضع Managed Identity authentication.

  • أولا تنشئ هوية مدارة مخصصة للنظام لوظيفتك في تحليلات الجريمة. هذه هي هوية وظيفتك في Microsoft Entra ID.

  • أضف مسؤول Active Directory إلى خادم SQL أو مساحة Synapse الخاصة بك، مما يتيح مصادقة Microsoft Entra ID (Managed Identity) لهذا المورد.

  • بعد ذلك، إنشاء مستخدم محتوى يمثل هوية وظيفة تحليل التدفق في قاعدة البيانات. كلما تفاعلت وظيفة تحليلات التدفق مع قاعدة بيانات SQL أو مورد Synapse SQL DB، فهذا هو الهدف الذي ستشير إليه للتحقق من صلاحيات وظيفة تحليلات التدفق الخاصة بك.

  • امنح أذونات لوظيفتك في تحليلات التدفق للوصول إلى قاعدة بيانات SQL أو مجموعات Synapse SQL.

  • أخيرا، أضف قاعدة بيانات Azure SQL/Azure Synapse Analytics كمخرج في وظيفة Stream Analytics.

المتطلبات المسبقه

لاستخدام هذه الميزة، تحتاج:

  • A Azure Stream Analytics job.

  • An قاعدة بيانات Azure SQL resource.

إنشاء هوية مدارة

أولا، أنشئ هوية مدارة لوظيفتك في Azure Stream Analytics.

  1. في بوابة Azure، افتح وظيفتك Azure Stream Analytics.

  2. من قائمة التنقل اليسرى، حدد Managed Identity الموجودة ضمن Configure. ثم حدد المربع الموجود بجوار Use System-assigned Managed Identity وحدد Save.

    اختر هوية مدارة معينة من النظام

    يقوم Microsoft Entra ID بإنشاء مبدأ خدمة لهوية وظيفة تحليلات التدفق. يدير Azure دورة حياة الهوية الجديدة. عندما تحذف وظيفة تحليلات التدفق، يقوم Azure تلقائيا بحذف الهوية المرتبطة (أي الجهة الرئيسية للخدمة).

  3. يمكنك أيضا التبديل إلى هويات مدارة معينة من قبل المستخدم.

  4. عند حفظ التكوين، يظهر معرف الكائن (OID) لأصل الخدمة كمعرف المبدأ كما هو موضح في القسم التالي:

    معرف الكائن يظهر كمعرف رئيسي

    يحمل كيان الخدمة نفس اسم مهمة Stream Analytics. على سبيل المثال، إذا كان اسم وظيفتك هو MyASAJob، فإن اسم مدير الخدمة هو أيضا MyASAJob.

اختر مسؤول Active Directory

بعد إنشاء هوية مدارة، اختر مسؤول Active Directory.

  1. Go to your قاعدة بيانات Azure SQL or Azure Synapse Analytics SQL Pool resource. اختر SQL Server أو Synapse Workspace الذي يكون المورد تحته. يمكنك العثور على رابط هذه الموارد في صفحة نظرة عامة على الموارد بجانب اسم الخادم أو اسم workspace.

  2. اختر Active Directory Admin أو SQL Active Directory Admin تحت Settings، ل SQL Server وSynapse Workspace على التوالي. ثم اختر تعيين المسؤول.

    Active Directory صفحة المسؤول

  3. في صفحة المسؤول Active Directory، ابحث عن مستخدم أو مجموعة ليكون مسؤولا في SQL Server واختر Select. يمكن لهذا المستخدم إنشاء مستخدم قاعدة البيانات المحتوى في القسم التالي.

    أضف Active Directory admin

    تظهر صفحة إدارة Active Directory جميع الأعضاء والمجموعات في Active Directory الخاص بك. لا يمكن اختيار المستخدمين أو المجموعات التي تم تحذيفها لأنهم غير مدعومين كمسؤولي Microsoft Entra. راجع قائمة المسؤولين المدعومين في قسم الميزات والقيود Microsoft Entra من استخدم المصادقة Microsoft Entra للمصادقة باستخدام قاعدة بيانات SQL أو Azure Synapse.

  4. اختر Save في صفحة Active Directory admin. عملية تغيير المدير تستغرق بضع دقائق.

إنشاء مستخدم قاعدة بيانات محتوية

بعد ذلك، أنشئ مستخدم قاعدة بيانات محتوى في قاعدة بيانات Azure SQL أو Azure Synapse الخاصة بك يتم تعيينه بهوية Microsoft Entra. المستخدم الموجود في قاعدة البيانات لا يملك تسجيل دخول لقاعدة البيانات الأساسية، لكنه يتصل بهوية في الدليل المرتبطة بقاعدة البيانات. يمكن أن تكون هوية Microsoft Entra حساب مستخدم فردي أو مجموعة. في هذه الحالة، تريد إنشاء مستخدم قاعدة بيانات محتوية لوظيفتك في تحليلات التدفق.

لمزيد من المعلومات، راجع المصادقة الشاملة مع قاعدة بيانات SQL و Azure Synapse Analytics (دعم SSMS للمصادقة متعددة الموارد).

  1. اتصل بقاعدة بيانات Azure SQL أو Azure Synapse باستخدام SQL Server Management Studio. اسم المستخدم هو مستخدم Microsoft Entra يحمل إذن تغيير أي مستخدم. المسؤول الذي تعيينه على SQL Server هو مثال. استخدم Microsoft Entra ID – الشامل مع مصادقة MFA.

    الاتصال ب SQL Server

    اسم الخادم <SQL Server name>.database.windows.net قد يختلف في مناطق مختلفة. على سبيل المثال، يجب أن تستخدم منطقة الصين <SQL Server name>.database.chinacloudapi.cn.

    يمكنك تحديد قاعدة بيانات Azure SQL أو Azure Synapse محددة بالذهاب إلى Options > Connection Properties > Connect to Database.

    SQL Server خصائص الاتصال

  2. عند الاتصال لأول مرة، قد تواجه النافذة التالية:

    نافذة قواعد جدار الحماية الجديدة

    1. إذا كان الأمر كذلك، اذهب إلى SQL Server أو مصدر Synapse Workspace الخاص بك في بوابة Azure. تحت قسم الأمان ، افتح صفحة جدران الحماية والشبكة الافتراضية أو صفحة الجدران النارية .
    2. أضف قاعدة جديدة بأي اسم قاعدة.
    3. استخدم عنوان IP الخاص ب From من نافذة قاعدة الجدار الناري الجديدلعنوان IP الخاص ب Start.
    4. استخدم عنوان IP الخاص ب To من نافذة قاعدة جدار الحماية الجديدلإنهاء عنوان IP.
    5. اختر حفظ وحاول الاتصال من SQL Server Management Studio مرة أخرى.
  3. بمجرد الاتصال، أنشئ المستخدم الموجود في قاعدة البيانات. أمر SQL التالي ينشئ مستخدم قاعدة بيانات يحتوي على نفس اسم وظيفة تحليلات التدفق الخاصة بك. تأكد من تضمين الحوامل حول ASA_JOB_NAME. استخدم بناء جملة T-SQL التالي وقم بتشغيل الاستعلام.

    CREATE USER [ASA_JOB_NAME] FROM EXTERNAL PROVIDER;
    

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

    SELECT * FROM <SQL_DB_NAME>.sys.database_principals
    WHERE type_desc = 'EXTERNAL_USER'
    
  4. لكي تتحقق Microsoft Entra ID من Microsoft مما إذا كانت وظيفة Stream Analytics لديها وصول إلى قاعدة بيانات SQL، تحتاج إلى منح Microsoft Entra إذن للتواصل مع قاعدة البيانات. للقيام بذلك، اذهب إلى صفحة الجدران النارية والشبكة الافتراضية أو Firewalls في Azure البوابة مرة أخرى، وقم بتمكين السماح Azure بالخدمات والموارد بالوصول إلى هذا الخادم أو workspace.

    الجدار الناري والشبكة الافتراضية

منح صلاحيات وظائف تحليلات التدفق

بعد إنشاء مستخدم قاعدة بيانات محتوية ومنح حق الوصول إلى خدمات Azure في البوابة، كما هو موضح في القسم السابق، تحصل وظيفة تحليلات التدفق الخاصة بك على إذن من الهوية المدارة إلى CONNECT إلى مورد قاعدة البيانات Azure SQL الخاص بك عبر الهوية المدارة. امنح صلاحيات SELECT و INSERT لوظيفة تحليلات التدفق، حيث تحتاج الوظيفة لهذه الأذونات لاحقا في سير عمل تحليلات التدفق. يسمح إذن SELECT للوظيفة باختبار اتصالها بالجدول في قاعدة بيانات Azure SQL. يسمح إذن INSERT باختبار استعلامات تحليلات التدفق من البداية إلى النهاية بمجرد تكوين مدخل وإخراج قاعدة البيانات Azure SQL.

يمكنك منح هذه الأذونات لوظيفة تحليلات التدفق باستخدام SQL Server Management Studio. لمزيد من المعلومات، راجع مرجع GRANT (Transact-SQL).

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

GRANT CONNECT TO ASA_JOB_NAME;
GRANT SELECT, INSERT ON OBJECT::TABLE_NAME TO ASA_JOB_NAME;

بدلا من ذلك، يمكنك النقر بزر الفأرة الأيمن على قاعدة البيانات Azure SQL أو Azure Synapse في SQL Server Management Studio واختيار Properties > Permissions. من قائمة الأذونات، يمكنك رؤية وظيفة تحليلات التدفق التي أضفتها سابقا، ويمكنك منح أو رفض الأدوانات يدويا كما تشاء.

للاطلاع على جميع الأصلاحات التي أضفتها لمستخدمك ASA_JOB_NAME ، قم بتشغيل الأمر التالي في SSMS تحت قاعدة البيانات المعنية:

SELECT dbprin.name, dbprin.type_desc, dbperm.permission_name, dbperm.state_desc, dbperm.class_desc, object_name(dbperm.major_id)
FROM sys.database_principals dbprin
LEFT JOIN sys.database_permissions dbperm
ON dbperm.grantee_principal_id = dbprin.principal_id
WHERE dbprin.name = '<ASA_JOB_NAME>'

Create an قاعدة بيانات Azure SQL or Azure Synapse output

ملاحظة

عندما تستخدم مثيل SQL المدار (MI) كمدخل مرجعي، يجب عليك تكوين نقطة نهاية عامة في مثيل SQL المدار الخاص بك. يجب عليك تحديد اسم النطاق المؤهل بالكامل مع المنفذ عند تكوين خاصية قاعدة البيانات . على سبيل المثال: sampleserver.public.database.windows.net,3342.

بعد أن تقوم بتكوين هويتك المدارة، ستكون جاهزا لإضافة مخرجات قاعدة بيانات Azure SQL أو Azure Synapse إلى وظيفتك في Stream Analytics.

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

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

  2. اختر إضافة > قاعدة بيانات SQL. في نافذة خصائص الإخراج في مخرج قاعدة بيانات SQL، اختر الهوية المدارة من قائمة وضع المصادقة المنسدلة.

  3. املأ بقية العقارات. لمعرفة المزيد حول إنشاء مخرجات قاعدة بيانات SQL، راجع إنشاء مخرجات قاعدة بيانات SQL باستخدام Stream Analytics. عندما تنتهي، حدد "Save".

  4. بعد اختيار حفظ، يتم تفعيل اختبار اتصال لموردك تلقائيا. بمجرد إكمال هذا الاختبار بنجاح، قمت بتكوين وظيفة تحليلات التدفق الخاصة بك للاتصال بقاعدة بيانات قاعدة بيانات Azure SQL أو قاعدة بيانات Synapse SQL باستخدام وضع المصادقة المدارة للهوية.

خطوات إضافية لبيانات SQL المرجعية

عند استخدام بيانات مرجعية في SQL، يتطلب منك Azure Stream Analytics إعداد حساب تخزين وظيفتك. تستخدم الوظيفة هذا الحساب التخزيني لتخزين المحتوى المتعلق بوظيفة تحليلات التدفق الخاصة بك، مثل لقطات بيانات SQL المرجعية.
اتبع هذه الخطوات لإنشاء حساب تخزين مرتبط:

  1. في صفحة وظائف تحليلات البث، تحت الإعدادات في القائمة اليسرى، اختر إعدادات حساب التخزين.

  2. في صفحة وظائف تحليلات البث، اختر إعدادات حساب التخزين تحت الإعدادات في القائمة اليسرى.

  3. في صفحة إعدادات حساب التخزين ، اختر إضافة حساب التخزين.

  4. اتبع التعليمات لتكوين إعدادات حساب التخزين الخاص بك.

    لقطة شاشة لصفحة إعدادات حساب التخزين لوظيفة في تحليلات التدفق.

Important

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

خطوات إضافية مع الهوية المدارة المعينة من قبل المستخدم

كرر الخطوات إذا اخترت هوية مدارة معينة من قبل المستخدم لربط ASA ب Synapse:

  1. أنشئ مستخدم قاعدة بيانات محتوى. استبدل ASA_Job_Name ب User-Assigned Managed Identity. انظر المثال الآتي.
    CREATE USER [User-Assigned Managed Identity] FROM EXTERNAL PROVIDER;
    
  2. امنح الأصوات ل User-Assigned Managed Identity. استبدل ASA_Job_Name ب User-Assigned Managed Identity.

لمزيد من التفاصيل، راجع الأقسام السابقة.

إزالة الهوية المدارة

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

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