Упражнение — настройка базы данных SQL Azure
В этом уроке вы развернете логический сервер SQL Azure и создадите базы данных для использования функций, рассмотренных для защиты База данных SQL Azure.
Настройка. Использование скриптов для развертывания База данных SQL Azure
Справа находится Azure Cloud Shell, который позволяет взаимодействовать с Azure через браузер. Перед началом упражнения вы запустите сценарий в Cloud Shell, чтобы создать среду с примером AdventureWorks
базы данных в База данных SQL Azure. При выполнении сценария вам будет предложено ввести пароль для новой базы данных и локальный IP-адрес, чтобы устройство смогло подключиться к базе данных.
Выполнение сценария займет от трех до пяти минут. Не забудьте заметить ваш password
, unique ID
и region
, потому что они не будут отображаться снова.
Начните с получения локального IP-адреса. Убедитесь, что вы отключены от всех служб VPN и открыли на устройстве локальный терминал PowerShell. Выполните следующую команду и запишите полученный IP-адрес.
(Invoke-WebRequest -Uri "https://ipinfo.io/ip").Content
В 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)"
Выведите и сохраните в текстовом файле сведения, которые понадобятся на протяжении модуля, запустив следующий код в 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
. Вы будете использовать их на протяжении модуля.Выполните следующий скрипт, чтобы развернуть База данных 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"
Откройте SQL Server Management Studio (SSMS) и создайте подключение к логическому серверу. В поле "Имя сервера" введите имя База данных SQL Azure логического сервера (например, aw-server.database.windows.net
<unique ID>
). Если вы не сохранили имя ранее, найдите его на портале Azure.На портале Azure введите AdventureWorks в поле поиска, чтобы найти базу данных и связанный с ней логический сервер.
Измените проверку подлинности на проверку подлинности SQL Server и введите соответствующий пароль администратора сервера, который вы указали во время развертывания в предыдущем упражнении.
Установите флажок "Запомнить пароль", а затем нажмите кнопку "Подключиться".
Примечание.
В зависимости от локальной конфигурации (например, VPN) ваш IP-адрес клиента может отличаться от IP-адреса, использованного порталом Azure во время развертывания. Если он отличается, вы получите всплывающее сообщение: "У вашего IP-адреса клиента нет доступа к серверу. Войдите в учетную запись Azure и создайте новое правило брандмауэра, чтобы разрешить доступ". Если вы видите это сообщение, войдите, используя учетную запись, которая используется для песочницы, и добавьте правило брандмауэра для IP-адреса клиента. Все эти действия можно выполнить с помощью всплывающего окна мастера в SSMS.
После подключения к логическому серверу SQL Azure разверните папку "Базы данных ".
Вы должны увидеть две базы данных, созданные и
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 );