Come creare un database Azure SQL con PowerShell

Se hai bisogno di apportare modifiche a un database SQL, potresti aprire SQL Server Management Studio, fare clic un po’ in giro e realizzarlo. Ma cosa succede quando devi creare un database SQL di Azure 10 o 100 volte o in uno script di automazione? Devi utilizzare PowerShell!

In questo tutorial, imparerai come creare un database SQL di Azure e una regola del firewall del server SQL, tutto in PowerShell!

Cominciamo!

Prerequisiti

Per seguire le demo in questo tutorial, assicurati di avere quanto segue:

  • A computer to run PowerShell – This tutorial uses Windows 10 using PowerShell v7.1.
  • A code editor like Visual Studio (VS) Code.
  • Il modulo PowerShell Az – Il tutorial utilizzerà la versione 5.9.0.
  • Il modulo PowerShell dbatools – Il tutorial utilizzerà la versione 1.0.145.
  • Un gruppo di risorse di Azure – Questo tutorial utilizzerà un gruppo di risorse chiamato rg-dbaautomation nella regione westeurope.

Creazione di Azure SQL Server

Prima di poter creare un database Azure SQL, è necessario creare un server Azure SQL su cui ospitarlo. Presumendo che tu sia già autenticato su Azure:

Apri PowerShell sul tuo computer locale e crea il server Azure SQL che ospiterà il database Azure SQL.

Il comando sottostante sta creando un server Azure SQL chiamato sqlestate nel gruppo di risorse richiesto con un nome utente SQL admin di SqlAdministrator e una password di AVeryStrongP@ssword0. Il comando sta salvando l’output del cmdlet New-AzSqlServer per utilizzare attributi dal server creato in seguito.

Puoi creare un nome utente e una password SQL admin a tua scelta, purché soddisfi i requisiti del database.

Il nome del server SQL deve essere globalmente unico.

## Converti la password in una stringa sicura poiché la creazione di un oggetto PSCredential
## richiede questo
$pw = ConvertTo-SecureString -String 'AVeryStrongP@ssword0' -AsPlainText -Force

## Crea l'oggetto PSCredential da passare al cmdlet New-AzSqlServer
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList 'SqlAdministrator',$pw 

## Crea il server SQL di Azure
$azSqlServer = New-AzSqlServer `
	-ServerName 'sqlestate123' `
	-ResourceGroupName 'rg-dbaautomation' `
	-Location 'westeurope' `
	-SqlAdministratorCredentials $credential

Creazione della regola del firewall del server SQL di Azure

Per impostazione predefinita, il server SQL di Azure non consente l’accesso a nessuna entità esterna. Per connettersi al server, è necessario creare successivamente una regola del firewall del server per accedere al server SQL dalla propria macchina locale.

Per creare la regola del firewall del server, individuare l’indirizzo IP pubblico del computer locale e invocare il New-AzSqlServerFirewallRule cmdlet per creare la regola.

Il comando qui sotto sta utilizzando il sito web http://ipinfo.io per trovare l’indirizzo IP pubblico del tuo computer. Quindi sta creando la regola del firewall nel gruppo di risorse rg-dbaautomation chiamato FirewallRule_Access e specificando quell’indirizzo IP per l’intero intervallo di IP.

## Trova l'indirizzo IP pubblico locale interrogando un sito web
$ip = Invoke-RestMethod <https://ipinfo.io/json> | Select-Object -ExpandProperty IP

## Crea la regola del firewall del server utilizzando l'indirizzo IP pubblico
New-AzSqlServerFirewallRule -ResourceGroupName 'rg-dbaautomation' -ServerName $azSqlServer.ServerName -FirewallRuleName 'FirewallRule_Access' -StartIpAddress $ip -EndIpAddress $ip
Creating the Azure SQL Server firewall rule

Come creare un database Azure SQL

Infine, una volta creato il server Azure SQL e la regola del firewall, crea il database utilizzando il cmdlet New-AzSqlDatabase.

Il comando seguente crea un database Azure SQL chiamato Estate con solo una edizione Basic ospitata sul server appena creato.

Per trovare tutte le edizioni disponibili, esegui il cmdlet di PowerShell Get-AzSqlServerServiceObjective.

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

Connessione al database Azure SQL

Dovresti ora avere un database Azure SQL in esecuzione nella tua sottoscrizione Azure pronto per essere utilizzato. Ora, conferma di poterti connettere utilizzando il cmdlet di PowerShell Connect-DbaInstance.

Utilizzando il FQDN del server Azure SQL precedentemente creato, il nome del database e le credenziali di amministratore SQL, testa la connessione al database utilizzando il codice seguente.

## Test di connessione all'istanza
Connect-DbaInstance -SqlInstance $azSqlServer.FullyQualifiedDomainName -Database $azSqlDatabase.DatabaseName -SqlCredential $credential

Se riesci a connetterti al database, vedrai il seguente output:

Running Connect-DbaInstance

Conclusione

Se desideri salvare tutti i passaggi mostrati sopra in uno script PowerShell singolo, crea uno nuovo script PowerShell e copia e incolla il frammento di codice di seguito.

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

## Convertire la password in una stringa sicura poiché la creazione di un oggetto PSCredential
## lo richiede
$pw = ConvertTo-SecureString -String 'AVeryStrongP@ssword0' -AsPlainText -Force

## Creare l'oggetto PSCredential da passare al cmdlet New-AzSqlServer
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList 'SqlAdministrator',$pw 

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

## Trovare l'indirizzo IP pubblico locale interrogando un sito web
$ip = Invoke-RestMethod <https://ipinfo.io/json> | Select-Object -ExpandProperty IP

## Creare la regola del firewall del server utilizzando l'indirizzo IP pubblico
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'

## Testare la connessione all'istanza
Connect-DbaInstance -SqlInstance $azSqlServer.FullyQualifiedDomainName -Database $azSqlDatabase.DatabaseName -SqlCredential $credential

Conclusion

Utilizzare PowerShell per creare un database Azure SQL semplifica notevolmente il processo rispetto all’utilizzo del Portale di Azure. PowerShell consente di automatizzare il processo per creare rapidamente server e database Azure SQL.

Dove vedi la tua nuova capacità di creare database Azure SQL con PowerShell integrarsi nella tua routine quotidiana?

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