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

Comments

  • Anonymous
    January 11, 2016
    The comment has been removed
  • Anonymous
    January 12, 2016
    Hi Amit,
    Yes. Use the following code
    $wc=New-Object net.webclient
    $ip = $wc.downloadstring("http://checkip.dyndns.com") -replace "[^d.]".Trim()
    #allow access from my remote IP
    New-AzureRmSqlServerFirewallRule -FirewallRuleName 'myIP' -StartIpAddress $ip -EndIpAddress $ip -ServerName $sqlServerName -ResourceGroupName $resourceGroupName
  • Anonymous
    January 13, 2016
    The comment has been removed