Oefening: Azure SQL Database configureren

Voltooid

In deze les implementeert u een logische Azure SQL-server en maakt u databases om gebruik te maken van de functies die worden besproken om uw Azure SQL Database te beveiligen.

Instellen: Scripts gebruiken om Azure SQL Database te implementeren

Aan de rechterkant bevindt zich de Azure Cloud Shell, een manier om met Azure te communiceren met behulp van een browser. Voordat u de oefening start, voert u een script uit in Cloud Shell om uw omgeving te maken met de voorbeelddatabase AdventureWorks in Azure SQL Database. In het script wordt u gevraagd om een wachtwoord voor de nieuwe database en uw lokale IP-adres om uw apparaat in staat te stellen verbinding te maken met de database.

Het voltooien van deze scripts duurt drie tot vijf minuten. Noteer uw password, unique IDen region, omdat deze niet opnieuw worden weergegeven.

  1. Verkrijg eerst uw lokale IP-adres. Zorg ervoor dat u geen verbinding hebt met een VPN-service en open een lokale PowerShell-terminal op uw apparaat. Voer de volgende opdracht uit en noteer het resulterende IP-adres.

    (Invoke-WebRequest -Uri "https://ipinfo.io/ip").Content
    
  2. Voer de volgende opdrachten uit in Cloud Shell. Voer een complex wachtwoord in en voer bij de prompt uw lokale openbare IP-adres in, dat u in de vorige stap hebt verkregen. Vervang [naam sandbox-resourcegroep]" door "[naam sandbox-resourcegroep]".

    $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. Genereer de gegevens die u nodig hebt in de module en sla deze op (in een tekstbestand of vergelijkbaar) door de volgende code in de Cloud Shell uit te voeren. U moet waarschijnlijk drukken Enter nadat u de code hebt geplakt, omdat de laatste regel niet standaard wordt uitgevoerd.

    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
    

    Notitie

    Vergeet niet om uw password, unique IDen region. U hebt deze in de gehele module nodig.

  4. Voer het volgende script uit om een logische Azure SQL Database-server te implementeren met het AdventureWorks voorbeeld, evenals een grootboekdatabase die in toekomstige eenheden wordt besproken. Het script voegt ook uw IP-adres toe als firewallregel, schakelt Microsoft Defender voor SQL in en maakt een opslagaccount voor gebruik in toekomstige eenheden. Wacht enkele minuten totdat dit script is voltooid.

    # 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. Open SQL Server Management Studio (SSMS) en maak een nieuwe verbinding met uw logische server. Voer voor de servernaam de naam van de logische Azure SQL Database-server in (bijvoorbeeld aw-server.database.windows.net<unique ID>). Als u de naam niet eerder hebt opgeslagen, moet u mogelijk naar de Azure Portal gaan om deze te verkrijgen.

    Zoek in Azure Portal naar AdventureWorks om uw database en de bijbehorende logische server te vinden.

    Wijzig de verificatie in SQL Server-verificatie en voer de bijbehorende aanmeldings- en wachtwoord voor de serverbeheerder in, die u tijdens de implementatie in de vorige oefening hebt opgegeven.

    Schakel het selectievakje Wachtwoord onthouden in en selecteer vervolgens Verbinding maken.

    Schermopname van verbinding maken met SQL Database in SSMS.

    Notitie

    Afhankelijk van uw lokale configuratie (bijvoorbeeld VPN) kan het IP-adres van de client afwijken van het IP-adres dat tijdens de implementatie door Azure Portal is gebruikt. Als dat het geval is, wordt er een pop-upvenster weergegeven met het bericht 'Uw client-IP-adres heeft geen toegang tot de server. Meld u aan bij een Azure-account en maak een nieuwe firewallregel om toegang in te schakelen." Als u dit bericht krijgt, meldt u zich aan met het account dat u gebruikt voor de sandbox en voegt u een firewallregel toe voor uw client-IP-adres. U kunt al deze stappen voltooien met behulp van de pop-upwizard in SSMS.

  6. Nadat u verbinding hebt gemaakt met uw logische Azure SQL-server, vouwt u de map Databases uit.

  7. U ziet nu de twee databases die zijn gemaakt en AdventureWorksmyLedgerDatabase. Klik met de rechtermuisknop op myLedgerDatabase de database en selecteer Nieuwe query en voer vervolgens de volgende opdracht uit om een tabel met de naam Account.Balancete maken. U kunt de query uitvoeren door Uitvoeren te selecteren op de taakbalk.

    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
    );