練習 - 設定 Azure SQL Database
在本單元中,您將部署 Azure SQL 邏輯伺服器,並建立資料庫,以利用所討論的功能來保護 Azure SQL Database。
設定:使用指令碼來部署 Azure SQL Database
您會在右側看到 Azure Cloud Shell,這是使用瀏覽器來與 Azure 互動的方式。 在開始練習之前,您會在 Cloud Shell 中執行指令碼,以在 Azure SQL Database 中使用範例 AdventureWorks
資料庫建立您的環境。 在此指令碼中,系統會提示輸入新資料庫的密碼和本機 IP 位址,讓裝置連線資料庫。
這些指令碼大約需要 3 到 5 分鐘的時間才能完成。 請務必記下您的 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 "[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)"
在 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
。 您將會在整個課程模組中用到這些資訊。執行下列指令碼,以使用
AdventureWorks
範例部署 Azure SQL Database 邏輯伺服器,以及我們將在未來單元中討論的總帳資料庫。 此指令碼也會將您的 IP 位址新增為防火牆規則、啟用適用於 SQL 的 Microsoft Defender,並建立儲存體帳戶供未來的單元使用。 稍候片刻,等待此指令碼完成。# 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),並向邏輯伺服器建立新的連線。 針對 [伺服器名稱],輸入 Azure SQL Database 邏輯伺服器名稱 (例如 aw-server
<unique ID>
.database.windows.net)。 如果先前未儲存此名稱,則可能需要前往 Azure 入口網站來取得。在 Azure 入口網站中,搜尋 AdventureWorks 以尋找資料庫及其相關聯邏輯伺服器。
將驗證變更為 [SQL Server 驗證],並輸入對應的伺服器管理員登入與密碼 (您在上一個練習中於部署期間所提供)。
選取 [記住密碼] 核取方塊,然後選取 [連線]。
注意
視本機設定 (例如 VPN) 而定,用戶端 IP 位址可能會與部署期間 Azure 入口網站所使用的 IP 位址不同。 若確實不同,則將看到快顯訊息表示「用戶端 IP 位址無法存取伺服器。 請登入 Azure 帳戶,並建立新的防火牆規則以啟用存取。」如果收到此訊息,請使用在沙箱中所用的帳戶來登入,並為用戶端 IP 位址新增防火牆規則。 您可透過使用 SSMS 中的快顯精靈來完成上述所有步驟。
連線到您的 Azure SQL 邏輯伺服器之後,請展開 [資料庫] 資料夾。
您應該會看到兩個已建立的資料庫,
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 );