Como Criar um Banco de Dados Azure SQL com PowerShell

Se precisar fazer alterações em um banco de dados SQL, você pode abrir o SQL Server Management Studio, clicar um pouco e fazer acontecer. Mas e quando precisar criar um banco de dados SQL do Azure 10 ou 100 vezes, ou em algum script de automação? Você precisa usar o PowerShell!

Neste tutorial, você aprenderá como criar um banco de dados SQL do Azure e uma regra de firewall do SQL Server, tudo no PowerShell!

Vamos lá!

Pré-requisitos

Para acompanhar as demonstrações neste tutorial, certifique-se de ter o seguinte:

  • A computer to run PowerShell – This tutorial uses Windows 10 using PowerShell v7.1.
  • A code editor like Visual Studio (VS) Code.
  • O módulo PowerShell Az – O tutorial usará a versão 5.9.0.
  • O módulo PowerShell dbatools – O tutorial usará a versão 1.0.145.
  • Um grupo de recursos do Azure – Este tutorial usará um grupo de recursos chamado rg-dbaautomation na região westeurope.

Criando o servidor SQL do Azure

Antes de criar um banco de dados SQL do Azure, você deve criar um servidor SQL do Azure para hospedá-lo. Supondo que você já esteja autenticado no Azure:

Abra o PowerShell no seu computador local e crie o servidor SQL do Azure que hospedará o banco de dados SQL do Azure.

O comando abaixo está criando um servidor SQL do Azure chamado sqlestate no grupo de recursos necessário com um nome de usuário de administrador SQL de SqlAdministrator e uma senha de AVeryStrongP@ssword0. O comando está salvando a saída do cmdlet New-AzSqlServer para usar atributos do servidor criado posteriormente.

Você pode criar um nome de usuário e senha de administrador SQL de sua escolha, desde que atenda aos requisitos do banco de dados.

O nome do servidor SQL deve ser globalmente único.

## Converta a senha para uma string segura, já que a criação de uma PSCredential
## objeto requer isso
$pw = ConvertTo-SecureString -String 'AVeryStrongP@ssword0' -AsPlainText -Force

## Crie o objeto PSCredential para passar para o cmdlet New-AzSqlServer
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList 'SqlAdministrator',$pw 

## Crie o Servidor SQL do Azure
$azSqlServer = New-AzSqlServer `
	-ServerName 'sqlestate123' `
	-ResourceGroupName 'rg-dbaautomation' `
	-Location 'westeurope' `
	-SqlAdministratorCredentials $credential

Criando a Regra de Firewall do Servidor SQL do Azure

Por padrão, o servidor SQL do Azure não permite acesso a nenhuma entidade externa. Para conectar-se ao servidor, você deve criar a seguir uma regra de firewall do servidor para acessar o servidor SQL a partir de sua máquina local.

Para criar a regra de firewall do servidor, encontre o endereço IP público de seu computador local e invoque o New-AzSqlServerFirewallRule cmdlet para criar a regra.

O comando abaixo está usando o site http://ipinfo.io para encontrar o endereço IP público de seu computador. Em seguida, está criando a regra de firewall no grupo de recursos rg-dbaautomation chamada FirewallRule_Access e especificando esse endereço IP para todo o intervalo de IP.

## Encontre o endereço IP público local consultando um site
$ip = Invoke-RestMethod <https://ipinfo.io/json> | Select-Object -ExpandProperty IP

## Crie a regra de firewall do servidor usando o endereço IP público
New-AzSqlServerFirewallRule -ResourceGroupName 'rg-dbaautomation' -ServerName $azSqlServer.ServerName -FirewallRuleName 'FirewallRule_Access' -StartIpAddress $ip -EndIpAddress $ip
Creating the Azure SQL Server firewall rule

Como Criar um Banco de Dados Azure SQL

Finalmente, depois de criar o servidor Azure SQL e a regra de firewall, agora crie o banco de dados usando o New-AzSqlDatabase cmdlet.

O comando abaixo cria um banco de dados Azure SQL chamado Estate com apenas uma edição Básica hospedada no servidor acabado de criar.

Para encontrar todas as edições disponíveis, execute o Get-AzSqlServerServiceObjective cmdlet do PowerShell.

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

Conectando ao Banco de Dados Azure SQL

Agora você deve ter um banco de dados Azure SQL em execução na sua assinatura Azure pronto para trabalhar. Agora, confirme que pode se conectar a ele usando o Connect-DbaInstance cmdlet do PowerShell.

Usando o FQDN do servidor Azure SQL previamente criado, o nome do banco de dados e as credenciais do administrador do SQL, teste a conexão com o banco de dados usando o código abaixo.

## Testando a conexão com a instância
Connect-DbaInstance -SqlInstance $azSqlServer.FullyQualifiedDomainName -Database $azSqlDatabase.DatabaseName -SqlCredential $credential

Se conseguir se conectar ao banco de dados, verá a seguinte saída:

Running Connect-DbaInstance

Finalizando

Se desejar salvar todos esses passos mostrados acima em um único script do PowerShell, crie um novo script do PowerShell e copie e cole o trecho abaixo.

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

## Converter a senha para uma string segura, uma vez que a criação de um PSCredential
## objeto requer isso
$pw = ConvertTo-SecureString -String 'AVeryStrongP@ssword0' -AsPlainText -Force

## Criar o objeto PSCredential para passar para o cmdlet New-AzSqlServer
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList 'SqlAdministrator',$pw 

## Criar o servidor Azure SQL
$azSqlServer = New-AzSqlServer `
	-ServerName 'sqlestate123' `
	-ResourceGroupName $rg.ResourceGroupName `
	-Location $rg.Location `
	-SqlAdministratorCredentials $credential

## Encontrar o endereço IP público local consultando um site
$ip = Invoke-RestMethod <https://ipinfo.io/json> | Select-Object -ExpandProperty IP

## Criar a regra do firewall do servidor usando o endereço IP público
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'

## Testar a conexão com a instância
Connect-DbaInstance -SqlInstance $azSqlServer.FullyQualifiedDomainName -Database $azSqlDatabase.DatabaseName -SqlCredential $credential

Conclusão

O uso do PowerShell para criar um banco de dados Azure SQL torna o processo muito mais suave do que usar o Portal Azure. O PowerShell permite automatizar o processo para criar rapidamente servidores e bancos de dados Azure SQL.

Onde você vê sua nova habilidade de criar bancos de dados Azure SQL com o PowerShell se encaixando em sua rotina diária?

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