有关安装当前版本的 Azure CLI 的信息,请参阅安装 Azure CLI 一文。
使用 az sql server create 命令创建配置有用户分配的托管标识和客户托管的 TDE 的服务器。
az sql server create \
--name $serverName \
--resource-group $resourceGroupName \
--location $location \
--admin-user $adminlogin \
--admin-password $password \
--assign-identity \
--identity-type $identitytype \
--user-assigned-identity-id $identityid \
--primary-user-assigned-identity-id $primaryidentityid \
--key-id $keyid
使用 az sql db create 命令创建数据库。
az sql db create \
--resource-group $resourceGroupName \
--server $serverName \
--name mySampleDatabase \
--sample-name AdventureWorksLT \
--edition GeneralPurpose \
--compute-model Serverless \
--family Gen5 \
--capacity 2
使用 PowerShell 创建配置了用户分配的托管标识和客户托管的 TDE 的服务器。
有关 Az PowerShell 模块安装说明,请参阅安装 Azure PowerShell。 若要了解具体的 cmdlet,请参阅 AzureRM.Sql。
使用 New-AzSqlServer cmdlet。
替换示例中的以下值:
<ResourceGroupName>
:Azure SQL 逻辑服务器的资源组名称
<Location>
:服务器的位置,例如 China East 2
或 China North 2
<ServerName>
:使用唯一的 Azure SQL 逻辑服务器名称
<ServerAdminName>
:SQL 管理员登录名
<ServerAdminPassword>
:SQL 管理员密码
<IdentityType>
:要分配给服务器的身份类型。 可能的值为 SystemAssigned
、UserAssigned
、SystemAssigned,UserAssigned
和 None
<UserAssignedIdentityId>
:要分配给服务器的用户分配的托管标识列表(可以是一个或多个)
<PrimaryUserAssignedIdentityId>
:用户分配的托管标识,应用作此服务器上的主要标识或默认标识
<CustomerManagedKeyId>
:密钥标识符,可以从密钥保管库中的密钥中检索
若要获取用户分配的托管标识资源 ID,请在 Azure 门户中搜索托管标识。 找到你的托管标识,然后转到“属性”。 你的 UMI 资源 ID 示例如 /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
所示
# create a server with user-assigned managed identity and customer-managed TDE
$params = @{
ResourceGroupName = "<ResourceGroupName>"
Location = "<Location>"
ServerName = "<ServerName>"
ServerVersion = "12.0"
SqlAdministratorCredentials = (Get-Credential)
SqlAdministratorLogin = "<ServerAdminName>"
SqlAdministratorPassword = "<ServerAdminPassword>"
AssignIdentity = $true
IdentityType = "<IdentityType>"
UserAssignedIdentityId = "<UserAssignedIdentityId>"
PrimaryUserAssignedIdentityId = "<PrimaryUserAssignedIdentityId>"
KeyId = "<CustomerManagedKeyId>"
}
New-AzSqlServer @params
下面是一个 ARM 模板示例,该模板使用用户分配的托管标识和客户管理的 TDE 在 Azure 中创建一个逻辑服务器。 该模板还为服务器添加了 Microsoft Entra 管理员集,并启用了仅限 Microsoft Entra 身份验证,但这可以从模板示例中删除。
有关 ARM 模板的详细信息,请参阅 Azure SQL 数据库和 SQL 托管实例的 Azure 资源管理器模板。
使用 Azure 门户中的自定义部署,在编辑器中生成自己的模板。 接下来,粘贴到示例中后保存配置。
若要获取用户分配的托管标识资源 ID,请在 Azure 门户中搜索托管标识。 找到你的托管标识,然后转到“属性”。 你的 UMI 资源 ID 示例如 /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
所示。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.1",
"parameters": {
"server": {
"type": "String"
},
"location": {
"type": "String"
},
"aad_admin_name": {
"type": "String",
"metadata": {
"description": "The name of the Azure AD admin for the SQL server."
}
},
"aad_admin_objectid": {
"type": "String",
"metadata": {
"description": "The Object ID of the Azure AD admin."
}
},
"aad_admin_tenantid": {
"type": "String",
"defaultValue": "[subscription().tenantId]",
"metadata": {
"description": "The Tenant ID of the Azure Active Directory"
}
},
"aad_admin_type": {
"defaultValue": "User",
"allowedValues": [
"User",
"Group",
"Application"
],
"type": "String"
},
"aad_only_auth": {
"defaultValue": true,
"type": "Bool"
},
"user_identity_resource_id": {
"defaultValue": "",
"type": "String",
"metadata": {
"description": "The Resource ID of the user-assigned managed identity."
}
},
"keyvault_url": {
"defaultValue": "",
"type": "String",
"metadata": {
"description": "The key vault URI."
}
},
"AdminLogin": {
"minLength": 1,
"type": "String"
},
"AdminLoginPassword": {
"type": "SecureString"
}
},
"resources": [
{
"type": "Microsoft.Sql/servers",
"apiVersion": "2020-11-01-preview",
"name": "[parameters('server')]",
"location": "[parameters('location')]",
"identity": {
"type": "UserAssigned",
"UserAssignedIdentities": {
"[parameters('user_identity_resource_id')]": {}
}
},
"properties": {
"administratorLogin": "[parameters('AdminLogin')]",
"administratorLoginPassword": "[parameters('AdminLoginPassword')]",
"PrimaryUserAssignedIdentityId": "[parameters('user_identity_resource_id')]",
"KeyId": "[parameters('keyvault_url')]",
"administrators": {
"login": "[parameters('aad_admin_name')]",
"sid": "[parameters('aad_admin_objectid')]",
"tenantId": "[parameters('aad_admin_tenantid')]",
"principalType": "[parameters('aad_admin_type')]",
"azureADOnlyAuthentication": "[parameters('aad_only_auth')]"
}
}
}
]
}