Exercício – configurar o Banco de Dados SQL do Azure

Concluído

Nesta unidade, você implantará um servidor lógico SQL do Azure e criará bancos de dados para utilizar os recursos discutidos para proteger seu Banco de Dados SQL do Azure.

Configurar: Usar scripts para implantar o Banco de Dados SQL do Azure

No lado direito está o Azure Cloud Shell, que é uma forma de interagir com o Azure usando um navegador. Antes de iniciar o exercício, você executará um script no Cloud Shell para criar seu ambiente com o banco de dados de exemplo AdventureWorks no Banco de Dados SQL do Azure. No script, será solicitado que você insira uma senha para o novo banco de dados e o endereço IP local para permitir que o dispositivo se conecte ao banco de dados.

Esses scripts deverão levar de três a cinco minutos para serem concluídos. Certifique-se de anotar seus password, unique ID e region, pois eles não serão mostrados novamente.

  1. Comece obtendo o endereço IP local. Verifique se você está desconectado de qualquer serviço de VPN e abra um terminal do PowerShell local no seu dispositivo. Execute o comando a seguir e anote o endereço IP resultante.

    (Invoke-WebRequest -Uri "https://ipinfo.io/ip").Content
    
  2. Execute os comandos a seguir no Cloud Shell. Insira uma senha complexa e, no prompt, insira o seu endereço IP público local, que você obteve na etapa anterior. Substitua "[nome do grupo de recursos da área restrita]" por "[nome de grupo de recursos de área restrita]".

    $adminSqlLogin = "cloudadmin"
    $password = Read-Host "Your username is 'cloudadmin'. Enter a password for your Azure SQL Database server that meets the password requirements"
    # Prompt for local ip address
    $ipAddress = Read-Host "Disconnect your VPN, open PowerShell on your machine and run '(Invoke-WebRequest -Uri "https://ipinfo.io/ip").Content'. Enter the value (include periods) next to 'Address' " 
    # Get resource group and location and random string
    $resourceGroup = Get-AzResourceGroup | Where ResourceGroupName -like "[sandbox resource group name]"
    $resourceGroupName = "[sandbox resource group name]"
    $uniqueID = Get-Random -Minimum 100000 -Maximum 1000000
    $storageAccountName = "mslearnsa"+$uniqueID
    $location = $resourceGroup.Location
    # The logical server name has to be unique in the system
    $serverName = "aw-server$($uniqueID)"
    
  3. Gere e armazene em um arquivo de texto as informações que serão necessárias em todo o módulo, executando o código a seguir no Cloud Shell. Provavelmente, você precisará pressionar Enter depois de colar o código, pois a última linha não será executada por padrão.

    Write-Host "Your unique ID for future exercises in this module:" $uniqueID
    Write-Host "Your resource group name is:" $resourceGroupName
    Write-Host "Your resources were deployed in the following region:" $location
    Write-Host "Your server name is:" $serverName
    

    Observação

    Lembre-se de anotar seus password, unique ID e region. Elas serão usadas em todo o módulo.

  4. Execute o script a seguir para implantar um servidor lógico do Banco de Dados SQL do Azure com o exemplo AdventureWorks, bem como um banco de dados do razão que discutiremos em unidades futuras. O script também adiciona seu endereço IP como uma regra de firewall, habilita o Microsoft Defender para SQL e cria uma conta de armazenamento para uso em unidades futuras. Permita vários minutos para que o script seja concluído.

    # The sample database name
    $databaseName = "AdventureWorks"
    # The ledger database name
    $databaseName2 = "myLedgerDatabase"
    # The storage account name has to be unique in the system
    $storageAccountName = $("sql$($uniqueID)")
    # Create a new server with a system wide unique server name
    $server = New-AzSqlServer -ResourceGroupName $resourceGroupName `
        -ServerName $serverName `
        -Location $location `
        -SqlAdministratorCredentials $(New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $adminSqlLogin, $(ConvertTo-SecureString -String $password -AsPlainText -Force))
    # Create a server firewall rule that allows access from the specified IP range and all Azure services
    $serverFirewallRule = New-AzSqlServerFirewallRule `
        -ResourceGroupName $resourceGroupName `
        -ServerName $serverName `
        -FirewallRuleName "AllowedIPs" `
        -StartIpAddress $ipAddress -EndIpAddress $ipAddress 
    $allowAzureIpsRule = New-AzSqlServerFirewallRule `
        -ResourceGroupName $resourceGroupName `
        -ServerName $serverName `
        -AllowAllAzureIPs
    # Create databases
    $database = New-AzSqlDatabase  -ResourceGroupName $resourceGroupName `
        -ServerName $serverName `
        -DatabaseName $databaseName `
        -SampleName "AdventureWorksLT" `
        -Edition "GeneralPurpose" -Vcore 2 -ComputeGeneration "Gen5"
    $database2 = New-AzSqlDatabase  -ResourceGroupName $resourceGroupName `
        -ServerName $serverName `
        -DatabaseName $databaseName2 `
        -Edition "GeneralPurpose" -Vcore 2 -ComputeGeneration "Gen5"
    # Enable Microsoft Defender for SQL
    $azureDefender = Enable-AzSqlServerAdvancedDataSecurity `
        -ResourceGroupName $resourceGroupName `
        -ServerName $serverName
    # Create a storage account
    $storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroupName `
        -AccountName $storageAccountName `
        -Location $location `
        -Type "Standard_LRS"
    
  5. Abra o SSMS (SQL Server Management Studio) e crie uma conexão com o servidor lógico. Como Nome do servidor, insira o nome do servidor lógico do Banco de Dados SQL do Azure (por exemplo, aw-server<unique ID>.database.windows.net). Se você não tiver salvado o nome anteriormente, talvez seja necessário consultar o portal do Azure para obtê-lo.

    No portal do Azure, pesquise AdventureWorks para localizar o banco de dados e o servidor lógico associado.

    Altere a autenticação para Autenticação do SQL Server e insira o logon e a senha do administrador do servidor correspondentes, que você forneceu durante a implantação no exercício anterior.

    Marque a caixa de seleção Lembrar senha e, em seguida, selecione Conectar.

    Captura de tela de como se conectar a um Banco de Dados SQL no SSMS.

    Observação

    Dependendo da sua configuração local (por exemplo, VPN), o endereço IP do cliente pode ser diferente do endereço IP que o portal do Azure usou durante a implantação. Se ele for diferente, você verá uma mensagem pop-up dizendo "O seu endereço IP do cliente não tem acesso ao servidor. Entre em uma conta do Azure e crie uma nova regra de firewall para habilitar o acesso". Se você receber essa mensagem, entre com a conta que você está usando para a área restrita e adicione uma regra de firewall para o endereço IP do cliente. Você pode concluir todas essas etapas usando o assistente de pop-up no SSMS.

  6. Depois de conectado ao servidor lógico do SQL do Azure, expanda a pasta Bancos de Dados.

  7. Você deve ver os dois bancos de dados que foram criados AdventureWorks e myLedgerDatabase. Clique com o botão direito do mouse no banco de dados myLedgerDatabase e selecione Nova Consulta e execute o comando a seguir para criar uma tabela chamada Account.Balance. Você pode executar a consulta selecionando Executar na barra de tarefas.

    CREATE SCHEMA [Account];
    GO  
    CREATE TABLE [Account].[Balance]
    (
        [CustomerID] INT NOT NULL PRIMARY KEY CLUSTERED,
        [LastName] VARCHAR (50) NOT NULL,
        [FirstName] VARCHAR (50) NOT NULL,
        [Balance] DECIMAL (10,2) NOT NULL
    )
    WITH 
    (
     SYSTEM_VERSIONING = ON (HISTORY_TABLE = [Account].[BalanceHistory]),
     LEDGER = ON
    );