Azure PowerShell Serie (6): Create Azure SQL Database

In dem sechsten Beitrag der Azure PowerShell Serie wird nun ein Azure SQL Server und eine dazugehörige Azure SQL Datenbank erstellt. In der UI würde das so aussehen:

SQL create 2

In anderen Worten, zunächst wird ein SQL Server auf Azure mit einem automatisch generiertem Namen erstellt (ebenso auf PowerShell), und darauf basiert eine Azure SQL Datenbank. Um eine SQL Datenbank basiert auf dem Azure SQL Server per PowerShell zu erstellen, richten wir eine Firewall Regel ein, um alle Verbindungen (also alle IP Adressen) zum Server erlaubt werden:

SQL create 3

Und hier nun zum PowerShell-Skript:

001002003004005006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054055056057058059060061062063064065066067068069070071072073074075076077078079080081 ######################################################## Create Azure SQL Database and Server# ISE is just awesomeise######################################################## 0. Azure Account DetailsAdd-AzureAccount$subName = "<AzureSbscriptionName>"Select-AzureSubscription $subName# Azure account details automatically set$subID = Get-AzureSubscription -Current | %{ $_.SubscriptionId } ######################################################## 1. Input information$location = "<DatacenterLocation>" #e.g. North Europe, West Europe, etc.$adminLogin = "<SQLServerLogin>"$adminPasswd = "<SQLServerPassword>"$sqlDB = "<AzureSQLDatabaseName>"######################################################## 2. Create Azure SQL Database Server# List all Azure SQL Databases and ServersGet-AzureSqlDatabaseServer# Provision new SQL Database Server$sqlServer = New-AzureSqlDatabaseServer -AdministratorLogin $adminLogin ` -AdministratorLoginPassword $adminPasswd -Location $location######################################################## 3. Azure SQL Server configuration --> authentication# Create Firewall rule# To allow connections to the database server you must create a rule that specifies # a range of IP addresses from which connections are allowed. New-AzureSqlDatabaseServerFirewallRule -ServerName $sqlServer.ServerName -RuleName "allowall" `-StartIpAddress 1.1.1.1 -EndIpAddress 255.255.255.255# Get credentials for SQL authentication# a) Prompt for credentials$cred = Get-Credential# or b) Use credentials from before$serverCreds = New-Object System.Management.Automation.PSCredential($adminLogin,($adminPasswd ` | ConvertTo-SecureString -AsPlainText -Force))# Create connection to server using SQL Authentication#$ctx = $sqlServer | New-AzureSqlDatabaseServerContext -Credential $serverCreds$ctx = New-AzureSqlDatabaseServerContext -ServerName $sqlServer.ServerName -Credential $serverCreds#$ctx = New-AzureSqlDatabaseServerContext -ServerName $sqlServer.ServerName -Credential $cred######################################################## 4. Create Azure SQL Database# Create new databaseNew-AzureSqlDatabase -DatabaseName $sqlDB -ConnectionContext $ctx# Modify the databaseSet-AzureSqlDatabase -ConnectionContext $ctx -DatabaseName $sqlDB -MaxSizeGB 20######################################################## 5. Clean up# Delete the databaseRemove-AzureSqlDatabase $ctx -DatabaseName $sqlDB# Delete the database serverRemove-AzureSqlDatabaseServer $sqlServer.ServerName