استخدام هوية مدارة لتوصيل قاعدة بيانات Azure SQL بتطبيق تم نشره في Azure Spring Apps
إشعار
سيتم إهمال الخطط الأساسية والقياسية والمؤسسة بدءا من منتصف مارس 2025، مع فترة تقاعد 3 سنوات. نوصي بالانتقال إلى Azure Container Apps. لمزيد من المعلومات، راجع إعلان إيقاف Azure Spring Apps.
سيتم إهمال الاستهلاك القياسي والخطة المخصصة بدءا من 30 سبتمبر 2024، مع إيقاف التشغيل الكامل بعد ستة أشهر. نوصي بالانتقال إلى Azure Container Apps. لمزيد من المعلومات، راجع ترحيل استهلاك Azure Spring Apps القياسي وخطة مخصصة إلى Azure Container Apps.
تنطبق هذه المقالة على: ✔️ Java ✔️ C#
تنطبق هذه المقالة على: ✔️ Basic/Standard ✔️ Enterprise
توضح هذه المقالة كيفية إنشاء هوية مدارة لتطبيق تم نشره في Azure Spring Apps واستخدامه للوصول إلى قاعدة بيانات Azure SQL.
قاعدة بيانات Azure SQLهي خدمة قاعدة بيانات ذكية وقابلة للتطوير وعلائقية تم إنشاؤها للسحابة. إنه دائمًا محدث، بميزات آلية تعمل بالذكاء الاصطناعي تعمل على تحسين الأداء والمتانة. تعمل خيارات الحوسبة بلا خادم وتخزين Hyperscale على توسيع نطاق الموارد تلقائيًا حسب الطلب، بحيث يمكنك التركيز على إنشاء تطبيقات جديدة دون القلق بشأن حجم التخزين أو إدارة الموارد.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.
- إصدار Azure CLI 2.45.0 أو أعلى.
- اتبع البرنامج التعليمي Spring Data JPA لتوفير قاعدة بيانات Azure SQL والعمل مع تطبيق Java محليا.
- اتبع البرنامج التعليمي للهوية المدارة المعين من قبل نظام Azure Spring Apps لتوفير تطبيق في Azure Spring Apps مع تمكين الهوية المدارة.
الاتصال بقاعدة بيانات Azure SQL باستخدام هوية مدارة
يمكنك توصيل التطبيق الخاص بك بقاعدة بيانات Azure SQL بهوية مدارة باتباع الخطوات اليدوية أو باستخدام Service Connector.
منح الإذن للهوية المدارة
اتصل بخادم SQL الخاص بك وشغل استعلام SQL التالي:
CREATE USER [<managed-identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<managed-identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<managed-identity-name>];
GO
تتبع قيمة <managed-identity-name>
العنصر النائب القاعدة <service-instance-name>/apps/<app-name>
؛ على سبيل المثال: myspringcloud/apps/sqldemo
. يمكنك أيضا استخدام الأمر التالي للاستعلام عن اسم الهوية المدارة باستخدام Azure CLI:
az ad sp show --id <identity-object-ID> --query displayName
تكوين تطبيق Java لاستخدام هوية مدارة
افتح ملف src/main/resources/application.properties ، ثم أضف Authentication=ActiveDirectoryMSI;
في نهاية spring.datasource.url
السطر، كما هو موضح في المثال التالي. تأكد من استخدام القيمة الصحيحة لمتغير $AZ_DATABASE_NAME.
spring.datasource.url=jdbc:sqlserver://$AZ_DATABASE_NAME.database.windows.net:1433;database=demo;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;Authentication=ActiveDirectoryMSI;
إنشاء التطبيق وتوزيعه في Azure Spring Apps
أعد إنشاء التطبيق وانشره في Azure Spring Apps المتوفرة في نقطة التعداد النقطي الثانية ضمن المتطلبات الأساسية. لديك الآن تطبيق Spring Boot مصادق عليه بواسطة هوية مدارة تستخدم JPA لتخزين البيانات واستردادها من قاعدة بيانات Azure SQL في Azure Spring Apps.