Exercício – Configurar a Base 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 através de um browser. 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-lhe-á pedido que forneça uma palavra-passe para a nova base de dados e o seu endereço IP local para permitir que o seu dispositivo se ligue à base de dados.

A conclusão destes scripts deve demorar entre 3 e 5 minutos. Certifique-se de anotar o seu password, unique IDe region, porque eles não serão mostrados novamente.

  1. Comece por obter o seu endereço IP local. Certifique-se de que está desligado de qualquer serviço VPN e abra um terminal PowerShell local no seu dispositivo. Execute o seguinte comando e anote o endereço IP resultante.

    (Invoke-WebRequest -Uri "https://ipinfo.io/ip").Content
    
  2. Execute os seguintes comandos no Cloud Shell: Introduza uma palavra-passe complexa e, na linha de comandos, introduza o seu endereço IP público, obtido no passo anterior.

    $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 "<rgn>[sandbox resource group name]</rgn>"
    $resourceGroupName = $resourceGroup.ResourceGroupName    
    $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. Escreva e guarde num ficheiro de texto as informações que serão necessárias ao longo do módulo ao executar o seguinte código no Cloud Shell. Você provavelmente precisará pressionar Enter depois de colar o código, porque 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
    

    Nota

    Lembre-se de anotar o seu password, unique IDe region. Irá utilizá-los ao longo do módulo.

  4. Execute o script a seguir para implantar um servidor lógico do Banco de Dados SQL do Azure com o AdventureWorks exemplo, bem como um banco de dados contábil 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. Aguarde alguns minutos para que este 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 SQL Server Management Studio (SSMS) e, em seguida, crie uma nova ligação ao servidor lógico. Para o Nome do servidor, insira o nome do servidor lógico do Banco de Dados SQL do Azure (por exemplo, <unique ID>). Se não guardou o nome anteriormente, talvez tenha de aceder ao portal do Azure para o obter.

    No portal do Azure, procure AdventureWorks para encontrar a base 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 de administrador do servidor correspondentes, que você forneceu durante a implantação no exercício anterior.

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

    Captura de ecrã a mostrar como ligar à Base de Dados SQL no SQL Server Management Studio.

    Nota

    Consoante a configuração local (por exemplo, VPN), o endereço IP de cliente poderá ser diferente do endereço IP que o portal do Azure utilizou durante a implementação. Se for o caso, verá a mensagem pop-up "O seu endereço IP de 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 receber esta mensagem, inicie sessão com a conta que está a utilizar para a sandbox e adicione uma regra de firewall para o endereço IP do cliente. Pode concluir todos estes passos com o assistente de pop-up no SQL Server Management Studio.

  6. Uma vez conectado ao seu servidor lógico 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 myLedgerDatabase banco de dados e selecione Nova Consulta e execute o seguinte comando 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
    );