Упражнение — настройка базы данных SQL Azure

Завершено

В этом уроке вы развернете логический сервер SQL Azure и создадите базы данных для использования функций, рассмотренных для защиты База данных SQL Azure.

Настройка. Использование скриптов для развертывания База данных SQL Azure

Справа находится Azure Cloud Shell, который позволяет взаимодействовать с Azure через браузер. Перед началом упражнения вы запустите сценарий в Cloud Shell, чтобы создать среду с примером AdventureWorks базы данных в База данных SQL Azure. При выполнении сценария вам будет предложено ввести пароль для новой базы данных и локальный IP-адрес, чтобы устройство смогло подключиться к базе данных.

Выполнение сценария займет от трех до пяти минут. Не забудьте заметить ваш password, unique IDи region, потому что они не будут отображаться снова.

  1. Начните с получения локального IP-адреса. Убедитесь, что вы отключены от всех служб VPN и открыли на устройстве локальный терминал PowerShell. Выполните следующую команду и запишите полученный IP-адрес.

    (Invoke-WebRequest -Uri "https://ipinfo.io/ip").Content
    
  2. В Cloud Shell выполните следующие команды. Введите сложный пароль и в командной строке введите локальный общедоступный IP-адрес, полученный на предыдущем шаге.

    $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. Выведите и сохраните в текстовом файле сведения, которые понадобятся на протяжении модуля, запустив следующий код в Cloud Shell. Скорее всего, после вставки кода вам потребуется нажать клавишу Enter , так как последняя строка не будет выполняться по умолчанию.

    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
    

    Примечание.

    Не забудьте заметить ваш password, unique IDи region. Вы будете использовать их на протяжении модуля.

  4. Выполните следующий скрипт, чтобы развернуть База данных SQL Azure логический сервер с AdventureWorks примером, а также базу данных реестра, которую мы обсудим в будущих уроках. Скрипт также добавляет IP-адрес в качестве правила брандмауэра, включает Microsoft Defender для SQL и создает учетную запись хранения для использования в будущих единицах. Подождите несколько минут, пока сценарий не будет выполнен.

    # 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. Откройте SQL Server Management Studio (SSMS) и создайте подключение к логическому серверу. В поле "Имя сервера" введите имя База данных SQL Azure логического сервера (например, aw-server.database.windows.net<unique ID>). Если вы не сохранили имя ранее, найдите его на портале Azure.

    На портале Azure введите AdventureWorks в поле поиска, чтобы найти базу данных и связанный с ней логический сервер.

    Измените проверку подлинности на проверку подлинности SQL Server и введите соответствующий пароль администратора сервера, который вы указали во время развертывания в предыдущем упражнении.

    Установите флажок "Запомнить пароль", а затем нажмите кнопку "Подключиться".

    Снимок экрана: подключение к базе данных SQL в SSMS.

    Примечание.

    В зависимости от локальной конфигурации (например, VPN) ваш IP-адрес клиента может отличаться от IP-адреса, использованного порталом Azure во время развертывания. Если он отличается, вы получите всплывающее сообщение: "У вашего IP-адреса клиента нет доступа к серверу. Войдите в учетную запись Azure и создайте новое правило брандмауэра, чтобы разрешить доступ". Если вы видите это сообщение, войдите, используя учетную запись, которая используется для песочницы, и добавьте правило брандмауэра для IP-адреса клиента. Все эти действия можно выполнить с помощью всплывающего окна мастера в SSMS.

  6. После подключения к логическому серверу SQL Azure разверните папку "Базы данных ".

  7. Вы должны увидеть две базы данных, созданные и AdventureWorks myLedgerDatabase. Щелкните правой кнопкой мыши myLedgerDatabase базу данных и выберите новый запрос, а затем выполните следующую команду, чтобы создать таблицу с именем Account.Balance. Запрос можно запустить, выбрав "Выполнить " на панели задач.

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