Hoe een Azure SQL Database te Maken met PowerShell

Als u wijzigingen wilt aanbrengen in een SQL-database, kunt u SQL Server Management Studio openen, wat klikken en het laten gebeuren. Maar wat gebeurt er wanneer u 10 of 100 keer een Azure SQL-database moet maken of in een automatiseringsscript? U moet PowerShell gebruiken!

In deze tutorial leert u hoe u een Azure SQL-database en een SQL-server firewallregel kunt maken, allemaal in PowerShell!

Laten we beginnen!

Vereisten

Om de demonstraties in deze tutorial te volgen, moet u het volgende hebben:

  • A computer to run PowerShell – This tutorial uses Windows 10 using PowerShell v7.1.
  • A code editor like Visual Studio (VS) Code.
  • De Az PowerShell-module – De tutorial zal versie 5.9.0 gebruiken.
  • De dbatools PowerShell-module – De tutorial zal versie 1.0.145 gebruiken.
  • Een Azure resourcegroep – Deze tutorial gebruikt een resourcegroep genaamd rg-dbaautomation in de regio westeurope.

Het maken van de Azure SQL Server

Voordat je een Azure SQL-database kunt maken, moet je een Azure SQL-server maken om deze op te hosten. Als je al geauthenticeerd bent bij Azure:

Open PowerShell op je lokale computer en maak de Azure SQL-server aan die de Azure SQL-database zal hosten.

De onderstaande opdracht maakt een Azure SQL-server genaamd sqlestate aan in de voorafgaande resourcegroep met een SQL-beheerdersgebruikersnaam van SqlAdministrator en een wachtwoord van AVeryStrongP@ssword0. De opdracht slaat de uitvoer van de New-AzSqlServer-cmdlet op om attributen van de later gemaakte server te gebruiken.

Je kunt een SQL-beheerdersgebruikersnaam en wachtwoord naar keuze maken, zolang het maar voldoet aan de databasevereisten.

De naam van de SQL Server moet wereldwijd uniek zijn.

## Zet het wachtwoord om naar een veilige string omdat het maken van een PSCredential object
## vereist dat het veilig is
$pw = ConvertTo-SecureString -String 'AVeryStrongP@ssword0' -AsPlainText -Force

## Maak het PSCredential object om door te geven aan de New-AzSqlServer cmdlet
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList 'SqlAdministrator',$pw 

## Maak de Azure SQL Server
$azSqlServer = New-AzSqlServer `
	-ServerName 'sqlestate123' `
	-ResourceGroupName 'rg-dbaautomation' `
	-Location 'westeurope' `
	-SqlAdministratorCredentials $credential

Het maken van de Azure SQL Server Firewall-regel

Standaard staat de Azure SQL-server geen toegang toe voor externe entiteiten. Om verbinding te maken met de server, moet je een server firewall-regel maken om toegang te krijgen tot de SQL-server vanaf je lokale machine.

Om de server firewall-regel te maken, zoek het publieke IP-adres van je lokale computer en roep de New-AzSqlServerFirewallRule cmdlet aan om de regel te maken.

De onderstaande opdracht gebruikt de website http://ipinfo.io om het publieke IP-adres van je computer te vinden. Vervolgens maakt het de firewall-regel in de resourcegroep rg-dbaautomation met de naam FirewallRule_Access en specificeert dat IP-adres voor het gehele IP-bereik.

## Vind het lokale publieke IP-adres door een website te bevragen
$ip = Invoke-RestMethod <https://ipinfo.io/json> | Select-Object -ExpandProperty IP

## Maak de server firewall-regel met behulp van het publieke IP-adres
New-AzSqlServerFirewallRule -ResourceGroupName 'rg-dbaautomation' -ServerName $azSqlServer.ServerName -FirewallRuleName 'FirewallRule_Access' -StartIpAddress $ip -EndIpAddress $ip
Creating the Azure SQL Server firewall rule

Hoe maak je een Azure SQL Database

Tenslotte, nadat je de Azure SQL-server en firewallregel hebt aangemaakt, maak je nu de database aan met behulp van het New-AzSqlDatabase cmdlet.

De onderstaande opdracht maakt een Azure SQL-database genaamd Estate aan met alleen een Basic-editie gehost op de zojuist aangemaakte server.

Om alle beschikbare edities te vinden, voer je het Get-AzSqlServerServiceObjective PowerShell-cmdlet uit.

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

Verbinding maken met de Azure SQL Database

Je zou nu een Azure SQL-database moeten hebben die draait in je Azure-abonnement en klaar is om mee te werken. Bevestig nu dat je er verbinding mee kunt maken met behulp van het Connect-DbaInstance PowerShell-cmdlet.

Gebruik het eerder aangemaakte FQDN van de Azure SQL-server, de naam van de database en de SQL-beheerdersreferenties om verbinding te testen met de database met behulp van de onderstaande code.

## Testen van verbinding met de instantie
Connect-DbaInstance -SqlInstance $azSqlServer.FullyQualifiedDomainName -Database $azSqlDatabase.DatabaseName -SqlCredential $credential

Als je verbinding kunt maken met de database, zie je de volgende uitvoer:

Running Connect-DbaInstance

Opsomming

Als je al deze bovenstaande stappen in een enkel PowerShell-script wilt opslaan, maak dan een nieuw PowerShell-script aan en kopieer en plak de onderstaande snippet.

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

## Converteer het wachtwoord naar een veilige string omdat het maken van een PSCredential
## object vereist is
$pw = ConvertTo-SecureString -String 'AVeryStrongP@ssword0' -AsPlainText -Force

## Maak het PSCredential-object aan om door te geven aan de New-AzSqlServer-cmdlet
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList 'SqlAdministrator',$pw 

## Maak de Azure SQL Server aan
$azSqlServer = New-AzSqlServer `
	-ServerName 'sqlestate123' `
	-ResourceGroupName $rg.ResourceGroupName `
	-Location $rg.Location `
	-SqlAdministratorCredentials $credential

## Vind het lokale openbare IP-adres door een website te bevragen
$ip = Invoke-RestMethod <https://ipinfo.io/json> | Select-Object -ExpandProperty IP

## Maak de firewallregel voor de server met behulp van het openbare IP-adres
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'

## Test het verbinden met de instantie
Connect-DbaInstance -SqlInstance $azSqlServer.FullyQualifiedDomainName -Database $azSqlDatabase.DatabaseName -SqlCredential $credential

Conclusie

Door PowerShell te gebruiken om een Azure SQL-database te maken, verloopt het proces veel soepeler dan via het Azure-portal. PowerShell stelt u in staat om het proces te automatiseren om snel Azure SQL-servers en databases aan te maken.

Waar zie je jouw nieuw verworven mogelijkheid om Azure SQL-databases te maken met PowerShell passen in je dagelijkse routine?

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