Cvičení – konfigurace Azure SQL Database

Dokončeno

V této lekci nasadíte logický server Azure SQL a vytvoříte databáze, které budou využívat funkce probírané k zabezpečení služby Azure SQL Database.

Nastavení: Nasazení služby Azure SQL Database pomocí skriptů

Vpravo uvidíte službu Azure Cloud Shell představující způsob, jak pracovat s Azure pomocí prohlížeče. Než začnete s cvičením, spustíte v Cloud Shellu skript, který vytvoří prostředí s ukázkovou AdventureWorks databází ve službě Azure SQL Database. Skript zobrazí výzvu k zadání hesla nové databáze a vaší místní IP adresy, aby se vaše zařízení mohlo k této databázi připojovat.

Spuštění těchto skriptů by mělo trvat 3 až 5 minut. Nezapomeňte si poznamenat , passwordunique IDa region, protože se znovu nezobrazí.

  1. Začněte získáním své místní IP adresy. Ujistěte se, že jste odpojeni od jakékoli služby VPN, a na zařízení otevřete místní terminál PowerShellu. Spusťte následující příkaz a poznamenejte si výslednou IP adresu.

    (Invoke-WebRequest -Uri "https://ipinfo.io/ip").Content
    
  2. V Cloud Shellu spusťte následující příkazy. Zadejte složité heslo a po zobrazení výzvy zadejte svou místní veřejnou IP adresu, kterou jste získali v předchozím kroku. Nahraďte [název skupiny prostředků sandboxu]" názvem [název skupiny prostředků sandboxu].

    $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. Spuštěním následujícího kódu v Cloud Shellu si vytvořte výstup a uložte si v textovém souboru informace, které budete potřebovat v průběhu tohoto modulu. Po vložení kódu budete pravděpodobně muset stisknout, Enter protože poslední řádek se ve výchozím nastavení nespustí.

    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
    

    Poznámka:

    Nezapomeňte si poznamenat , passwordunique IDa region. Budete je používat v celém tomto modulu.

  4. Spuštěním následujícího skriptu nasaďte logický server Azure SQL Database s AdventureWorks ukázkou a databázi registru, kterou probereme v budoucích lekcích. Skript také přidá vaši IP adresu jako pravidlo brány firewall, povolí Microsoft Defender pro SQL a vytvoří účet úložiště pro použití v budoucích lekcích. Počkejte několik minut, než se tento skript dokončí.

    # 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. Otevřete nástroj SQL Server Management Studio (SSMS) a vytvořte nové připojení k logickému serveru. Jako název serveru zadejte název logického serveru azure SQL Database (například aw-server.database.windows.net<unique ID>). Pokud jste si tento název neuložili dříve, budete ho pravděpodobně muset získat přes Azure Portal.

    Na webu Azure Portal vyhledejte AdventureWorks – tím najdete svou databázi a k ní přidružený logický server.

    Změňte ověřování na ověřování SQL Serveru a zadejte odpovídající přihlašovací jméno a heslo správce serveru, které jste zadali během nasazení v předchozím cvičení.

    Zaškrtněte políčko Zapamatovat heslo a pak vyberte Připojení.

    Snímek obrazovky s postupem připojení k databázi SQL Database v nástroji SSMS

    Poznámka:

    Podle toho, jaká je vaše místní konfigurace (například VPN), se vaše IP adresa klienta může lišit od IP adresy, kterou Azure Portal používal během nasazování. Pokud se liší, automaticky se vám otevře zpráva „Vaše IP adresa klienta nemá přístup k serveru. Přihlaste se k účtu Azure a vytvořte nové pravidlo brány firewall pro povolení přístupu. Pokud se zobrazí tato zpráva, přihlaste se pomocí účtu, který používáte pro sandbox, a přidejte pravidlo brány firewall pro vaši IP adresu klienta. Všechny tyto kroky můžete provést v automaticky otevíraném průvodci v SSMS (SQL Server Management Studio).

  6. Po připojení k logickému serveru Azure SQL rozbalte složku Databáze .

  7. Měly by se zobrazit dvě databáze, které byly vytvořeny, AdventureWorks a myLedgerDatabase. Klikněte pravým tlačítkem myši na myLedgerDatabase databázi a vyberte Nový dotaz a spuštěním následujícího příkazu vytvořte tabulku s názvem Account.Balance. Dotaz můžete spustit výběrem možnosti Spustit na hlavním panelu.

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