探索單一 SQL 資料庫

已完成

我們將查看數個部署單一 Azure SQL Database 的方法。

透過入口網站部署

透過 Azure 入口網站建立單一資料庫的流程很簡單。 在入口網站的左側導覽功能表上,選取 [SQL 資料庫]。 在出現的滑出對話方塊中,按一下 [建立]:

The Azure portal Azure SQL Database Deployment screen

在下圖的刀鋒視窗中,您將注意到應該已為您提供訂用帳戶。 您必須提供下列資訊:

  • 資源群組 – 若有您想要使用的現有資源群組,您可以從下拉式清單中選取該資源群組。 如果想要為此 Azure SQL Database 建立新的資源群組,您可以按一下 [新建] 選項。
  • 資料庫名稱 – 您必須提供資料庫名稱。
  • 伺服器:每個資料庫都必須位於邏輯伺服器上。 如果您已有邏輯伺服器存在於適當的區域中,則可以選擇使用該邏輯伺服器。 否則,您可以按一下 [新建] 連結,並遵循提示來建立新的邏輯伺服器,以主控資料庫。
  • 想使用 SQL 彈性集區嗎? - 決定是否要使用彈性集區。
  • 計算 + 儲存 – 決定所需的適當計算資源。 根據預設,它將是 Gen5,2vCore,具有 32 GB 的儲存體,直到選取了其他虛擬核心為止。 按一下 [設定資料庫] 以檢視替代的設定選項。

Create SQL Database blade of Azure portal

下圖顯示入口網站刀鋒視窗,您可以在其中設定資料庫選項。 在這裡,您將注意到服務層級為 [一般用途],而計算層級為 [已佈建]。 [已佈建] 意指計算資源預先配置,並根據設定的虛擬核心數目,按每小時計費。 另一個選項是 [無伺服器],先前已討論過。 無伺服器根據使用的虛擬核心數目,按每秒計費。

Service Tier selection in Azure portal

透過 PowerShell/CLI 部署 Azure SQL Database

您也可以使用 Azure PowerShell 或 Azure CLI 來部署資料庫。 下圖顯示 PowerShell 範例,您將在其中建立新的資源群組,並定義稱為 SqlAdmin 的系統管理員,然後建立新的伺服器、資料庫和防火牆規則。

# Connect-AzAccount

# The SubscriptionId in which to create these objects
$SubscriptionId = ''

# Set the resource group name and location for your server
$resourceGroupName = "myResourceGroup-$(Get-Random)"
$location = "westus2"

# Set an admin login and password for your server
$adminSqlLogin = "SqlAdmin"
$password = "ChangeYourAdminPassword1"

# Set server name - the logical server name has to be unique in the system
$serverName = "server-$(Get-Random)"

# The sample database name
$databaseName = "mySampleDatabase"

# The ip address range that you want to allow to access your server
$startIp = "0.0.0.0"
$endIp = "0.0.0.0"

# Set subscription
Set-AzContext -SubscriptionId $subscriptionId

# Create a resource group
$resourceGroup = New-AzResourceGroup -Name $resourceGroupName -Location $location

# Create a 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

$serverFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
 -ServerName $serverName `
 -FirewallRuleName "AllowedIPs" -StartIpAddress $startIp -EndIpAddress $endIp

# Create a blank database with an S0 performance level

$database = New-AzSqlDatabase -ResourceGroupName $resourceGroupName `
 -ServerName $serverName `
 -DatabaseName $databaseName `
 -RequestedServiceObjectiveName "S0" `
 -SampleName "AdventureWorksLT"

Azure CLI 也可以用來部署 Azure SQL Database,如下所示:

#!/bin/bash

# set execution context (if necessary)
az account set --subscription <replace with your subscription name or id>

# Set the resource group name and location for your server
resourceGroupName=myResourceGroup-$RANDOM
location=westus2

# Set an admin login and password for your database
adminlogin=ServerAdmin
password=`openssl rand -base64 16`

# password=<EnterYourComplexPasswordHere1>

# The logical server name has to be unique in all of Azure 
servername=server-$RANDOM

# The ip address range that you want to allow to access your DB
startip=0.0.0.0
endip=0.0.0.0

# Create a resource group
az group create \
 --name $resourceGroupName \
 --location $location

# Create a logical server in the resource group
az sql server create \
 --name $servername \
 --resource-group $resourceGroupName \
 --location $location \
 --admin-user $adminlogin \
 --admin-password $password

# Configure a firewall rule for the server

az sql server firewall-rule create \
 --resource-group $resourceGroupName \
 --server $servername \
 -n AllowYourIp \
 --start-ip-address $startip \
 --end-ip-address $endip

# Create a database in the server
az sql db create \
 --resource-group $resourceGroupName \
 --server $servername 
 --name mySampleDatabase \
 --sample-name AdventureWorksLT \
 --edition GeneralPurpose \
 --family Gen4 \
 --capacity 1 \

# Echo random password
echo $password

使用 Azure Resource Manager 範本部署 Azure SQL Database

部署資源的另一種方法是使用 Azure Resource Manager 範本,如先前所提及。 Resource Manager 範本可讓您以最精細的方式控制資源,而 Microsoft 會提供稱為 “Azure-Quickstart-Templates” 的 GitHub 存放庫,其中裝載您可以在部署中參考的 Azure Resource Manager 範本。 部署 GitHub 型範本的 PowerShell 範例如下所示:

#Define Variables for parameters to pass to template
$projectName = Read-Host -Prompt "Enter a project name"
$location = Read-Host -Prompt "Enter an Azure location (i.e. centralus)"
$adminUser = Read-Host -Prompt "Enter the SQL server administrator username"
$adminPassword = Read-Host -Prompt "Enter the SQl server administrator password" -AsSecureString
$resourceGroupName = "${projectName}rg"

#Create Resource Group and Deploy Template to Resource Group
New-AzResourceGroup -Name $resourceGroupName -Location $location

New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName `
 -TemplateUri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-sql-logical-server/azuredeploy.json" `
 -administratorLogin $adminUser -administratorLoginPassword $adminPassword

Read-Host -Prompt "Press [ENTER] to continue ..."