创建和配置 Azure SQL 数据库
可以使用代码或通过 Azure 门户手动创建 Azure SQL 数据库。 此外,还可以将数据库创建集成到自动化持续集成 (CI) 过程。 此方法有利于保持一致性,因为编写代码来创建数据库可确保每次生成完全相同的规范。
使用代码创建 Azure SQL 数据库时,有四个主要步骤:
- 创建资源组
- 创建 SQL Server
- 配置防火墙规则
- 创建数据库
创建资源组
Azure 中的所有资源都在资源组中创建。 使用代码创建资源组时,在门户中创建数据库时,不会具有相同的可见性。 如果需要在自动化部署中包含资源组创建,请考虑使用随机名称。 此方法有助于防止租户中现有资源组名称出现任何重复。
注意
$RANDOM 是一个 Bash 函数,它返回范围 0 - 32767 中的伪随机整数。 这个范围比 PowerShell Get-Random 返回的小。 为了确保唯一性,可以将两个 $RANDOM 结果相乘。
有关使用代码创建资源组的详细信息,请参阅使用 Azure CLI 管理 Azure 资源组或使用 Azure PowerShell 管理 Azure 资源组。
创建 SQL Server
创建 SQL Server 时,服务器名称也必须是唯一的,并且必须创建具有强密码的管理员用户。
此示例使用 Azure CLI 创建 SQL Server:
serverName="svr-$randomId"
adminUser="azureadmin"
adminPassword="pw-$randomId"
az sql server create --name $serverName --resource-group $resourceGroup --location $location \
--admin-user $adminUser --admin-password $adminPassword
此示例使用 PowerShell 创建 SQL Server:
$serverName = "svr-$randomId"
$adminUser = "azureadmin"
$adminPassword = "pw-$randomId"
$credentials = New-Object -TypeName System.Management.Automation.PSCredential `
-ArgumentList $adminUser, $(ConvertTo-SecureString -String $adminPassword -AsPlainText -Force)
$server = New-AzSqlServer -ServerName $serverName -ResourceGroupName $resourceGroup `
-Location $location -SqlAdministratorCredentials $credentials
$server
配置防火墙规则
防火墙规则指定允许或拒绝访问服务器的流量。
此示例使用 Azure CLI 添加防火墙规则:
startIpAddress="0.0.0.0"
endIpAddress="0.0.0.0"
firewallRuleName="AllowedIPRange"
az sql server firewall-rule create --server $serverName \
--resource-group $resourceGroup \
--name $firewallRuleName --start-ip-address $startIpAddress --end-ip-address $endIpAddress
此示例使用 PowerShell 添加防火墙规则:
$startIpAddress = "0.0.0.0"
$endIpAddress = "0.0.0.0"
$firewallRuleName = "AllowedIPRange"
$serverFirewallRule = New-AzSqlServerFirewallRule -ServerName $serverName `
-ResourceGroupName $resourceGroup `
-FirewallRuleName $firewallRuleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress
$serverFirewallRule
创建数据库
现在可以在创建的服务器上创建 Azure SQL 数据库。 在此代码示例中,你将创建示例数据库 AdventureWorksLT。 如果要创建空数据库,请更改数据库名称,并使用 --sample-name 参数删除该行。
以下代码片段使用 Azure CLI 创建 AdventureWorksLT 数据库。
az sql db create --name AdventureWorksLT
\ --resource-group $resourceGroup --server $serverName
\ --sample-name AdventureWorksLT
\ --edition GeneralPurpose --compute-model serverless --family Gen5 --capacity 2
以下代码片段使用 PowerShell 创建 AdventureWorksLT 数据库。
New-AzSqlDatabase -DatabaseName AdventureWorksLT `
-ResourceGroupName $resourceGroup -ServerName $serverName `
-SampleName AdventureWorksLT `
-Edition GeneralPurpose -ComputeModel Serverless -ComputeGeneration Gen5 -VCore 2
代码片段演示如何为一个特定服务层和计算层创建 Azure SQL 数据库。 若要获取有关可用服务和计算层的详细信息,请参阅服务层。
查询数据库
如果已在 Azure 中创建资源组和服务器,则可以使用 T-SQL 创建 Azure SQL 数据库。 T-SQL 不提供创建 Azure 资源的功能。
但是,可以通过转到 Azure SQL 仪表板,在 Azure 门户中使用“查询编辑器”来查询现有数据库。
若要开始,请登录到 Azure 门户并导航到数据库。 在左侧导航窗格中,选择“查询编辑器”。 然后使用 SQL 管理员凭据登录。 登录后,针对 AdventureWorksLT 数据库运行以下 T-SQL 查询。
SELECT TOP 10 C.Name AS Category, SUM(S.OrderQty * S.UnitPrice) AS SalesValue
FROM [SalesLT].[ProductCategory] AS C
INNER JOIN [SalesLT].[Product] AS P
ON C.ProductCategoryID = P.ProductCategoryID
INNER JOIN [SalesLT].[SalesOrderDetail] AS S
ON P.ProductID = S.ProductID
GROUP BY C.Name
ORDER BY SalesValue DESC;
有关 Azure SQL 数据库部署模型的详细信息,请参阅什么是 Azure SQL 数据库?。