本文内容
适用于:Azure SQL 数据库
注意
数据库级别 TDE CMK 可用于 Azure SQL 数据库(所有 SQL 数据库版本)。 它不适用于 Azure SQL 托管实例、本地 SQL Server、Azure VM 和 Azure Synapse Analytics(专用 SQL 池 [以前称为 SQL DW])。
在本指南中,我们将介绍有关在 Azure SQL 数据库上配置异地复制和备份还原的步骤。 Azure SQL 数据库是使用透明数据加密 (TDE) 和数据库级别客户管理的密钥 (CMK) 配置的,并利用用户分配的托管标识 来访问 Azure Key Vault 。 在本指南中,Azure Key Vault 和 Azure SQL 的逻辑服务器位于同一个 Microsoft Entra 租户中,但也可以位于不同的租户中。
先决条件
重要
创建或还原数据库后,Azure 门户中的“透明数据加密”菜单将显示与源数据库设置相同的新数据库,但可能缺少密钥。 在所有根据源数据库创建新数据库的情况下,Azure 门户的“其他数据库密钥”列表中为目标数据库显示的密钥数都可能小于为源数据库显示的密钥数。 这是因为显示的密钥数根据用于创建目标数据库的各个功能要求来决定。 若要列出可用于新创建的数据库的所有密钥,请使用查看 Azure SQL 数据库上的数据库级别客户管理的密钥设置 中的可用 API。
使用数据库级别客户管理的密钥创建 Azure SQL 数据库作为辅助或副本数据库
使用以下说明或命令创建通过数据库级别客户管理的密钥配置的 Azure SQL 数据库的次要副本或复制目标。 在数据库创建阶段为透明数据加密设置客户管理的密钥需要用户分配的托管标识。
创建具有数据库级别客户管理的密钥的数据库副本
若要在 Azure SQL 数据库中创建数据库作为具有数据库级别客户管理的密钥的副本,请执行以下步骤:
转到 Azure 门户 ,然后导航到配置了数据库级别客户管理的密钥的 Azure SQL 数据库。 访问“数据加密 ”菜单的“透明数据加密 ”选项卡,并检查数据库正在使用的当前密钥列表。
通过从数据库的“概述”菜单中选择“复制”,创建数据库的副本。
此时会显示“创建 SQL 数据库 - 复制数据库”菜单。 对此数据库使用其他服务器,但采用与你尝试复制的数据库相同的设置。 在“透明数据加密密钥管理”部分,选择“配置透明数据加密”。
出现“透明数据加密”菜单时,查看此副本数据库的 CMK 设置。 设置和密钥应使用源数据库中所用的相同标识和密钥进行填充。
选择“应用”以继续,然后选择“查看 + 创建”和“创建”来创建副本数据库。
创建具有数据库级别客户管理的密钥的次要副本
转到 Azure 门户 ,然后导航到配置了数据库级别客户管理的密钥的 Azure SQL 数据库。 访问“透明数据加密”菜单,检查数据库使用的当前密钥的列表。
在数据库的“数据管理”设置下,选择“副本”。 选择“创建副本”,创建数据库的次要副本。
此时会显示“创建 SQL 数据库 - 异地副本”菜单。 对此数据库使用辅助服务器,但采用与你尝试复制的数据库相同的设置。 在“透明数据加密密钥管理”部分,选择“配置透明数据加密”。
出现“透明数据加密”菜单时,查看此数据库副本的 CMK 设置。 设置和密钥应使用主数据库中所用的相同标识和密钥进行填充。
选择“应用”以继续,然后选择“查看 + 创建”和“创建”来创建副本数据库。
有关安装当前版本的 Azure CLI 的信息,请参阅安装 Azure CLI 一文。
使用 expand-keys
参数(keys-filter
. 为 current
)预填充主数据库当前正在使用的密钥列表。
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter current
选择用户分配的托管标识(如果配置跨租户访问,还包括联合客户端 ID)。
创建一个新数据库作为辅助数据库,并提供从源数据库和上述标识(如果配置跨租户访问,还包括联合客户端 ID)获取的预填充密钥列表。
# Create a secondary replica with Active Geo Replication with the same name as the primary database
az sql db replica create -g $resourceGroup -s $serverName -n $databaseName --partner-server $secondaryServer --partner-database $secondaryDatabase --partner-resource-group $secondaryResourceGroup -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
重要
$keys 是从源数据库中检索到的空格分隔的密钥列表。
要创建数据库的副本,可使用具有相同参数的 az sql db copy 命令。
# Create a copy of a database configured with database level customer-managed keys
az sql db copy -g $resourceGroup -s $serverName -n $databaseName --dest-name $secondaryDatabase -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
有关 Az PowerShell 模块安装说明,请参阅安装 Azure PowerShell 。 若要了解具体的 cmdlet,请参阅 AzureRM.Sql 。
使用 Get-AzSqlDatabase 命令以及 -ExpandKeyList
和 -KeysFilter "current"
参数预填充主数据库当前正在使用的密钥列表。 如果要检索所有密钥,请排除 -KeysFilter
。
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
选择用户分配的托管标识(如果配置跨租户访问,还包括联合客户端 ID)。
使用 New-AzSqlDatabaseSecondary 命令创建一个新数据库作为辅助数据库,并使用 -KeyList
、-AssignIdentity
、-UserAssignedIdentityId
、-EncryptionProtector
参数(如有必要,还包括 -FederatedClientId
)在 API 调用中提供从源数据库和上述标识(如果配置跨租户访问,还包括联合客户端 ID)获取的预填充密钥列表。
# Create a secondary replica with Active Geo Replication with the same name as the primary database
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
$database | New-AzSqlDatabaseSecondary -PartnerResourceGroupName <SecondaryResourceGroupName> -PartnerServerName <SecondaryServerName> -AllowConnections "All" -AssignIdentity -UserAssignedIdentityId <UserAssignedIdentityId> -EncryptionProtector <CustomerManagedKeyId> -FederatedClientId <FederatedClientId>
-KeyList $database.Keys.Keys
要创建数据库的副本,可以使用具有相同参数的 New-AzSqlDatabaseCopy 。
# Create a copy of a database configured with database level customer-managed keys
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
New-AzSqlDatabaseCopy -CopyDatabaseName <CopyDatabaseName> -CopyResourceGroupName <CopyResourceGroupName> -CopyServerName <CopyServerName> -DatabaseName <DatabaseName> -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -AssignIdentity -UserAssignedIdentityId <UserAssignedIdentityId> -EncryptionProtector <CustomerManagedKeyId> -FederatedClientId <FederatedClientId>
-KeyList $database.Keys.Keys
下面是 ARM 模板示例,该模板创建了 Azure SQL 数据库的次要副本和副本,该数据库在数据库级别是使用用户分配的托管标识和客户管理的 TDE 配置的。
有关 ARM 模板的详细信息,请参阅 Azure SQL 数据库和 SQL 托管实例的 Azure 资源管理器模板 。
使用 Azure 门户中的自定义部署 ,在编辑器中生成自己的模板。 接下来,粘贴到示例中后保存配置。
使用以下 REST API 请求预填充主数据库当前正在使用的密钥列表:
GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('current'))
选择用户分配的托管标识(如果配置跨租户访问,还包括联合客户端 ID)。
创建一个新数据库作为辅助数据库,并在 ARM 模板中提供从源数据库和上述标识(如果配置跨租户访问,还包括联合客户端 ID)获取的预填充密钥列表作为 keys_to_add
参数。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"location": {
"type": "String"
},
"source_database_id": {
"type": "String"
},
"keys_to_add": {
"type": "Object"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2022-08-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/e1775f9f-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"keys": "[parameters('keys_to_add')]",
"createMode": "Secondary",
"sourceDatabaseId": "[parameters('source_database_id')]"
}
}
]
}
encryption_protector
和 keys_to_add
参数的示例为:
"keys_to_add": {
"value": {
"https://yourvault.vault.azure.cn/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": {},
"https://yourvault.vault.azure.cn/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000": {}
}
},
"encryption_protector": {
"value": "https://yourvault.vault.azure.cn/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
}
要创建数据库的副本,可以使用具有相同参数的以下模板。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"location": {
"type": "String"
},
"source_database_id": {
"type": "String"
},
"keys_to_add": {
"type": "Object"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2022-08-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/e1775f9f-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"keys": "[parameters('keys_to_add')]",
"createMode": "Copy",
"sourceDatabaseId": "[parameters('source_database_id')]"
}
}
]
}
使用数据库级别客户管理的密钥还原 Azure SQL 数据库
本部分将介绍有关还原使用数据库级别客户管理的密钥配置的 Azure SQL 数据库的步骤。 在数据库创建阶段为透明数据加密设置客户管理的密钥需要用户分配的托管标识。
时间点还原
以下部分介绍如何将在数据库级别使用客户管理的密钥配置的数据库还原到给定时间点。 若要详细了解 SQL 数据库的备份恢复,请参阅恢复 SQL 数据库中的数据库 。
转到 Azure 门户 ,然后导航到配置了数据库级别客户管理的密钥且你想要还原的 Azure SQL 数据库。
若要将数据库还原到某个时间点,请从数据库的“概述”菜单中选择“还原”。
此时会显示“创建 SQL 数据库 - 还原数据库”菜单。 填写所需的源和数据库详细信息。 在“透明数据加密密钥管理”部分,选择“配置透明数据加密”。
出现“透明数据加密”菜单时,查看数据库的 CMK 设置。 设置和密钥应使用你尝试还原的数据库中所用的相同标识和密钥进行填充。
选择“应用”以继续,然后选择“查看 + 创建”和“创建”来创建副本数据库。
有关安装当前版本的 Azure CLI 的信息,请参阅安装 Azure CLI 一文。
使用 expand-keys
参数预填充主数据库使用的密钥列表,并将还原时间点作为 keys-filter
。
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter $timestamp
选择用户分配的托管标识(如果配置跨租户访问,还包括联合客户端 ID)。
创建一个新数据库作为还原目标,并提供从源数据库和上述标识(如果配置跨租户访问,还包括联合客户端 ID)获取的预填充密钥列表。
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
重要
$keys 是从源数据库中检索到的空格分隔的密钥列表。
有关 Az PowerShell 模块安装说明,请参阅安装 Azure PowerShell 。 若要了解具体的 cmdlet,请参阅 AzureRM.Sql 。
使用 Get-AzSqlDatabase 命令以及 -ExpandKeyList
和 -KeysFilter "2023-01-01"
参数(2023-01-01
是要将数据库还原到的时间点的示例)预填充主数据库使用的密钥列表)。 如果要检索所有密钥,请排除 -KeysFilter
。
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter <Timestamp>
选择用户分配的托管标识(如果配置跨租户访问,还包括联合客户端 ID)。
使用具有 -FromPointInTimeBackup
参数的 Restore-AzSqlDatabase 命令,并使用 -KeyList
、-AssignIdentity
、-UserAssignedIdentityId
、-EncryptionProtector
参数(如有必要,还包括 -FederatedClientId
)在 API 调用中提供从上述步骤和上述标识(如果配置跨租户访问,还包括联合客户端 ID)获取的预填充密钥列表。
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter <Timestamp>
# Create a restored database
Restore-AzSqlDatabase -FromPointInTimeBackup -PointInTime <Timestamp> -ResourceId '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}' -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -TargetDatabaseName <TargetDatabaseName> -KeyList $database.Keys.Keys -EncryptionProtector <EncryptionProtector> -UserAssignedIdentityId <UserAssignedIdentityId> -AssignIdentity
已删除的数据库还原
以下部分介绍如何还原在数据库级别使用客户管理的密钥配置的已删除数据库。 若要详细了解 SQL 数据库的备份恢复,请参阅恢复 SQL 数据库中的数据库 。
转到 Azure 门户 ,然后导航到已删除但你想要还原的数据库的逻辑服务器。 在“数据管理”下,选择“已删除的数据库”。
选择要还原的已删除数据库。
此时会显示“创建 SQL 数据库 - 还原数据库”菜单。 填写所需的源和数据库详细信息。 在“透明数据加密密钥管理”部分,选择“配置透明数据加密”。
出现“透明数据加密”菜单时,请针对你的数据库配置“用户分配的托管标识”、“客户管理的密钥”和“其他数据库密钥”部分。
选择“应用”以继续,然后选择“查看 + 创建”和“创建”来创建副本数据库。
有关安装当前版本的 Azure CLI 的信息,请参阅安装 Azure CLI 一文。
使用 expand-keys
参数预填充已删除的数据库使用的密钥列表。 建议传递源数据库正在使用的所有密钥。 还可以尝试使用 keys-filter
参数通过在删除时提供的密钥进行还原。
az sql db show-deleted --name $databaseName --resource-group $resourceGroup --server $serverName --restorable-dropped-database-id "databaseName,133201549661600000" --expand-keys
重要
restorable-dropped-database-id
可以通过列出服务器中所有可还原的已删除数据库来检索,其格式为 databaseName,deletedTimestamp
。
选择用户分配的托管标识(如果配置跨租户访问,还包括联合客户端 ID)。
创建一个新数据库作为还原目标,并提供从已删除的源数据库和上述标识(如果配置跨租户访问,还包括联合客户端 ID)获取的预填充密钥列表。
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys --deleted-time "2023-02-06T11:02:46.160000+00:00"
重要
$keys
是从源数据库中检索到的空格分隔的密钥列表。
有关 Az PowerShell 模块安装说明,请参阅安装 Azure PowerShell 。 若要了解具体的 cmdlet,请参阅 AzureRM.Sql 。
使用 Get-AzSqlDeletedDatabaseBackup 命令和 -ExpandKeyList
参数预填充主数据库使用的密钥列表。 建议传递源数据库正在使用的所有密钥。 还可以尝试使用 -KeysFilter
参数通过在删除时提供的密钥进行还原。
$database = Get-AzSqlDeletedDatabaseBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseId "dbName,133201549661600000" -ExpandKeyList -DeletionDate "2/6/2023" -DatabaseName <databaseName>
重要
DatabaseId
可以通过列出服务器中所有可还原的已删除数据库来检索,其格式为 databaseName,deletedTimestamp
。
选择用户分配的托管标识(如果配置跨租户访问,还包括联合客户端 ID)。
使用具有 -FromDeletedDatabaseBackup
参数的 Restore-AzSqlDatabase 命令,并使用 -KeyList
、-AssignIdentity
、-UserAssignedIdentityId
、-EncryptionProtector
参数(如有必要,还包括 -FederatedClientId
)在 API 调用中提供从上述步骤和上述标识(如果配置跨租户访问,还包括联合客户端 ID)获取的预填充密钥列表。
$database = Get-AzSqlDeletedDatabaseBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseId "dbName,133201549661600000" -ExpandKeyList -DeletionDate <DeletionDate> -DatabaseName <databaseName>
# Create a restored database
Restore-AzSqlDatabase -FromDeletedDatabaseBackup -DeletionDate <Timestamp> -ResourceId '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/restorableDroppedDatabases/{databaseName}' -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -TargetDatabaseName <TargetDatabaseName> -KeyList $database.Keys.Keys -EncryptionProtector <EncryptionProtector> -UserAssignedIdentityId <UserAssignedIdentityId> -AssignIdentity
异地还原
以下部分介绍如何还原在数据库级别使用客户管理的密钥配置的数据库的异地复制备份。 若要详细了解 SQL 数据库的备份恢复,请参阅恢复 SQL 数据库中的数据库 。
转到 Azure 门户 ,然后导航到你想要在其中还原数据库的逻辑服务器。
在“概述”菜单中,选择“创建数据库”。
此时会显示“创建 SQL 数据库”菜单。 填充新数据库的“基本信息”和“网络”选项卡。 在“其他设置”中,在“使用现有数据”部分选择“备份”,然后选择异地复制的备份。
转到“安全性”选项卡。在“透明数据加密密钥管理”部分,选择“配置透明数据加密”。
出现“透明数据加密”菜单时,选择“数据库级别客户管理的密钥(CMK)”。 “用户分配的托管标识”、“客户管理的密钥”和“其他数据库密钥”必须与要还原的源数据库匹配。 备份中使用的客户管理的密钥保存在密钥保管库中,请确保用户分配的托管标识有权访问该密钥保管库。
选择“应用”以继续,然后选择“查看 + 创建”和“创建”来创建备份数据库。
有关安装当前版本的 Azure CLI 的信息,请参阅安装 Azure CLI 一文。
使用 expand-keys
参数预填充在数据库级别使用客户管理的密钥配置的数据库的异地备份所使用的密钥列表。
az sql db geo-backup --database-name $databaseName --g $resourceGroup --server $serverName --expand-keys
选择用户分配的托管标识(如果配置跨租户访问,还包括联合客户端 ID)。
创建一个新数据库作为异地还原目标,并提供从已删除的源数据库和上述标识(如果配置跨租户访问,还包括联合客户端 ID)获取的预填充密钥列表。
# Create a geo restored database
az sql db geo-backup restore --geo-backup-id "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/recoverableDatabases/{databaseName}" --dest-database $destName --resource-group $resourceGroup --dest-server $destServerName -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
重要
$keys
是从源数据库中检索到的空格分隔的密钥列表。
有关 Az PowerShell 模块安装说明,请参阅安装 Azure PowerShell 。 若要了解具体的 cmdlet,请参阅 AzureRM.Sql 。
使用 Get-AzSqlDatabaseGeoBackup 命令和 -ExpandKeyList
预填充主数据库使用的密钥列表,以检索所有密钥。
$database = Get-AzSqlDatabaseGeoBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <databaseName> -ExpandKeyList
重要
DatabaseId
可以通过列出服务器中所有可还原的已删除数据库来检索,其格式为 databaseName,deletedTimestamp
。
选择用户分配的托管标识(如果配置跨租户访问,还包括联合客户端 ID)。
使用具有 -FromGeoBackup
参数的 Restore-AzSqlDatabase 命令,并使用 -KeyList
、-AssignIdentity
、-UserAssignedIdentityId
、-EncryptionProtector
参数(如有必要,还包括 -FederatedClientId
)在 API 调用中提供从上述步骤和上述标识(如果配置跨租户访问,还包括联合客户端 ID)获取的预填充密钥列表。
$database = Get-AzSqlDatabaseGeoBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <databaseName> -ExpandKeyList
# Create a restored database
Restore-AzSqlDatabase -FromGeoBackup -ResourceId "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/recoverableDatabases/{databaseName}" -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -TargetDatabaseName <TargetDatabaseName> -KeyList $database.Keys.Keys -EncryptionProtector <EncryptionProtector> -UserAssignedIdentityId <UserAssignedIdentityId> -AssignIdentity
重要
长期保留 (LTR) 备份不提供备份使用的密钥列表。 要还原 LTR 备份,必须将源数据库使用的所有密钥都传递给 LTR 还原目标。
复制或还原数据库的自动密钥轮换选项
可以将新复制或还原的数据库配置为自动轮换用于透明数据加密的客户管理的密钥。 有关如何在 Azure 门户中或使用 API 启用自动密钥轮换的信息,请参阅数据库级别的自动密钥轮换 。
后续步骤
查看以下有关各种数据库级别 CMK 操作的文档: