איך ליצור מסד נתונים של 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 להעברה לפקודת 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.

הפקודה הבאה תיצור מסד נתונים של Azure SQL בשם Estate רק עם גרסת Basic המאוחסנת על השרת שנוצר עכשיו.

כדי למצוא את כל הגרסאות הזמינות, הריץ את הפקודה Get-AzSqlServerServiceObjective בפוורשל.

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

חיבור למסד הנתונים של Azure SQL

עכשיו עליך להפעיל מסד נתונים של Azure SQL במנוי ה-Azure שלך ולוודא שהוא מוכן לעבוד. עכשיו, אשר כי ניתן להתחבר אליו באמצעות הפקודה Connect-DbaInstance.

באמצעות שם ה-FQDN של שרת ה-Azure SQL שנוצר מראש, שם המסד נתונים, והפרטים האישיים של מנהל ה-SQL, בדוק את החיבור למסד הנתונים באמצעות הקוד למטה.

## בדיקת חיבור למקרה
Connect-DbaInstance -SqlInstance $azSqlServer.FullyQualifiedDomainName -Database $azSqlDatabase.DatabaseName -SqlCredential $credential

אם אפשר להתחבר למסד הנתונים, תראה את הפלט הבא:

Running Connect-DbaInstance

סיכום

אם תרצה לשמור את כל השלבים האמורים לעיל בתוך סקריפט פוורשל אחד, תצור סקריפט פוורשל חדש והעתק את הקטע למטה.

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

## המרת הסיסמה למחרוזת בטוחה מאחר ויצירת PSCredential
## דורשת זאת
$pw = ConvertTo-SecureString -String 'AVeryStrongP@ssword0' -AsPlainText -Force

## יצירת אובייקט PSCredential להעברה ל-cmdlet של New-AzSqlServer
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList 'SqlAdministrator',$pw 

## יצירת שרת SQL של Azure
$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/