كيفية إنشاء قاعدة بيانات Azure SQL باستخدام PowerShell

إذا كنت بحاجة لإجراء تغييرات على قاعدة بيانات SQL، فإنك يمكنك فتح SQL Server Management Studio والنقر حول قليلاً وتحقيق ذلك. ولكن ماذا يحدث عندما تحتاج إلى إنشاء قاعدة بيانات Azure SQL 10 أو 100 مرة أو في بعض نص التوجيه التلقائي؟ تحتاج إلى استخدام PowerShell!

في هذا البرنامج التعليمي، ستتعلم كيفية إنشاء قاعدة بيانات Azure SQL وقاعدة بيانات لجدار الحماية SQL، كل ذلك باستخدام PowerShell!

هيا بنا نبدأ!

المتطلبات الأولية

لمتابعة العروض التوضيحية في هذا البرنامج التعليمي، تأكد من وجود ما يلي:

  • A computer to run PowerShell – This tutorial uses Windows 10 using PowerShell v7.1.
  • A code editor like Visual Studio (VS) Code.
  • وحدة PowerShell Az – سيتم استخدام الإصدار 5.9.0 من البرنامج التعليمي.
  • وحدة PowerShell dbatools – سيتم استخدام الإصدار 1.0.145 من البرنامج التعليمي.
  • مجموعة موارد Azure – سيتم استخدام مجموعة موارد تسمى rg-dbaautomation في منطقة westeurope في هذا البرنامج التعليمي.

إنشاء خادم Azure SQL

قبل أن تتمكن من إنشاء قاعدة بيانات Azure SQL، يجب عليك إنشاء خادم Azure SQL لاستضافتها عليه. بناءً على افتراض أنك قد قمت بالفعل بالمصادقة على Azure:

افتح PowerShell على جهاز الكمبيوتر المحلي الخاص بك وقم بإنشاء خادم Azure SQL الذي سيستضيف قاعدة بيانات Azure SQL.

الأمر أدناه يقوم بإنشاء خادم Azure SQL يسمى sqlestate في مجموعة الموارد الأساسية مع اسم مستخدم مسؤول SQL هو SqlAdministrator وكلمة مرور AVeryStrongP@ssword0. يتم حفظ ناتج الأمر New-AzSqlServer لاستخدام السمات من الخادم المنشأ لاحقًا.

يمكنك إنشاء اسم مستخدم وكلمة مرور لمسؤول SQL الخاص بك كما تشاء طالما أنه يلبي متطلبات قاعدة البيانات.

يجب أن يكون اسم خادم SQL فريدًا على مستوى عالمي.

## تحويل كلمة المرور إلى سلسلة آمنة نظرًا لأن إنشاء كائن PSCredential يتطلب ذلك
## الكائن يتطلب ذلك
$pw = ConvertTo-SecureString -String 'AVeryStrongP@ssword0' -AsPlainText -Force

## إنشاء كائن PSCredential لتمريره إلى cmdlet New-AzSqlServer
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList 'SqlAdministrator',$pw 

## إنشاء خادم Azure SQL
$azSqlServer = New-AzSqlServer `
	-ServerName 'sqlestate123' `
	-ResourceGroupName 'rg-dbaautomation' `
	-Location 'westeurope' `
	-SqlAdministratorCredentials $credential

إنشاء قاعدة بيانات حماية جدار الحماية لخادم Azure SQL

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

لإنشاء قاعدة جدار الحماية للخادم، ابحث عن عنوان IP العام لجهاز الكمبيوتر الخاص بك واستدعِ New-AzSqlServerFirewallRule لإنشاء القاعدة.

الأمر أدناه يستخدم موقع الويب http://ipinfo.io للعثور على عنوان IP العام لجهاز الكمبيوتر الخاص بك. ثم يقوم بإنشاء قاعدة جدار الحماية في مجموعة موارد rg-dbaautomation بتسمية FirewallRule_Access وتحديد هذا العنوان IP لنطاق العناوين IP بأكمله.

## العثور على عنوان IP العام المحلي عن طريق الاستعلام عن موقع الويب
$ip = Invoke-RestMethod <https://ipinfo.io/json> | Select-Object -ExpandProperty IP

## إنشاء قاعدة جدار الحماية للخادم باستخدام عنوان IP العام
New-AzSqlServerFirewallRule -ResourceGroupName 'rg-dbaautomation' -ServerName $azSqlServer.ServerName -FirewallRuleName 'FirewallRule_Access' -StartIpAddress $ip -EndIpAddress $ip
Creating the Azure SQL Server firewall rule

كيفية إنشاء قاعدة بيانات Azure SQL

أخيرًا ، بمجرد إنشاء خادم Azure SQL وقاعدة الحماية الجدار النار ، قم بإنشاء قاعدة البيانات باستخدام New-AzSqlDatabase cmdlet.

الأمر أدناه ينشئ قاعدة بيانات Azure SQL تسمى Estate فقط مع إصدار Basic مستضافًا على الخادم المنشأ للتو.

للعثور على جميع الإصدارات المتاحة ، قم بتشغيل Get-AzSqlServerServiceObjective PowerShell cmdlet.

New-AzSqlDatabase -ResourceGroupName 'rg-dbaautomation' -ServerName $azSqlServer.ServerName -DatabaseName 'Estate' -Edition 'Basic'
Creating the Azure SQL database

الاتصال بقاعدة بيانات Azure SQL

يجب أن يكون لديك الآن قاعدة بيانات Azure SQL تعمل في اشتراك Azure الخاص بك جاهزة للعمل معها. الآن ، قم بتأكيد الاتصال بها باستخدام Connect-DbaInstance PowerShell cmdlet.

باستخدام اسم المضيف الكامل المحدد مسبقًا لخادم Azure SQL واسم قاعدة البيانات واعتمادات المسؤول SQL ، اختبر الاتصال بقاعدة البيانات باستخدام الكود أدناه.

## اختبار الاتصال بالمثيل
Connect-DbaInstance -SqlInstance $azSqlServer.FullyQualifiedDomainName -Database $azSqlDatabase.DatabaseName -SqlCredential $credential

إذا كنت تستطيع الاتصال بقاعدة البيانات ، سترى الناتج التالي:

Running Connect-DbaInstance

اختتام

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

$rg = New-AzResourceGroup -Name 'rg-dbaautomation' -Location 'westeurope'

تحويل كلمة المرور إلى سلسلة آمنة لأن إنشاء كائن PSCredential يتطلب ذلك
عنصر يتطلب ذلك
$pw = ConvertTo-SecureString -String 'AVeryStrongP@ssword0' -AsPlainText -Force

إنشاء كائن PSCredential لتمريره إلى الأمر New-AzSqlServer
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList 'SqlAdministrator',$pw 

إنشاء خادم Azure SQL
$azSqlServer = New-AzSqlServer `
	-ServerName 'sqlestate123' `
	-ResourceGroupName $rg.ResourceGroupName `
	-Location $rg.Location `
	-SqlAdministratorCredentials $credential

العثور على عنوان IP العام المحلي عن طريق الاستعلام عن موقع ويب
$ip = Invoke-RestMethod <https://ipinfo.io/json> | Select-Object -ExpandProperty IP

إنشاء قاعدة الجدار الناري للخادم باستخدام عنوان IP العام
New-AzSqlServerFirewallRule -ResourceGroupName $rg.ResourceGroupName -ServerName $azSqlServer.ServerName -FirewallRuleName 'FirewallRule_Access' -StartIpAddress $ip -EndIpAddress $ip

New-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $azSqlServer.ServerName -DatabaseName 'Estate' -Edition 'Basic'

اختبار الاتصال بالنسخة
Connect-DbaInstance -SqlInstance $azSqlServer.FullyQualifiedDomainName -Database $azSqlDatabase.DatabaseName -SqlCredential $credential

الاستنتاج

استخدام PowerShell لإنشاء قاعدة بيانات Azure SQL يجعل العملية أسهل بكثير من استخدام بوابة Azure. يسمح PowerShell لك بتتميم العملية لإنشاء خوادم وقواعد بيانات Azure SQL بسرعة.

أين ترى قدرتك الجديدة على إنشاء قواعد بيانات Azure SQL باستخدام PowerShell تندرج في روتينك اليومي؟

Source:
https://adamtheautomator.com/create-azure-sql-database/