适用于:
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 密钥保管库。 在本指南中,Azure 密钥保管库 和 Azure SQL 的逻辑服务器位于同一个 Microsoft Entra 租户中,但也可以位于不同的租户中。
先决条件
重要
数据库创建或恢复后,新数据库的设置与源数据库相同,但可能缺少密钥。 在所有从源数据库创建新数据库的情况下,目标数据库报告的键数可能少于源数据库报告的键数。 返回的密钥数量取决于创建目标数据库时所采用的具体功能需求。 要列出新创建数据库中所有可用的密钥,请在 Azure SQL 数据库 上“查看数据库层级的客户管理密钥设置”中的可用 API。
使用数据库级别客户管理的密钥创建 Azure SQL 数据库作为辅助或副本数据库
使用以下说明或命令创建通过数据库级别客户管理的密钥配置的 Azure SQL 数据库的次要副本或复制目标。 在数据库创建阶段,若要为透明数据加密设置客户管理密钥,则需要使用用户分配的托管标识。
若要在 Azure SQL 数据库中创建数据库作为具有数据库级别客户管理的密钥的副本,请执行以下步骤:
使用Azure CLI、PowerShell或REST API检查源数据库当前使用的密钥列表。 关于命令,请参见“查看 Azure SQL 数据库 上的数据库级客户管理密钥设置。
转到 Azure 门户,然后导航到配置了数据库级别客户管理的密钥的 Azure SQL 数据库。 通过从数据库的“概述”菜单中选择“复制”,创建数据库的副本。
此时会显示“创建 SQL 数据库 - 复制数据库”菜单。 对此数据库使用其他服务器,但采用与你尝试复制的数据库相同的设置。 在 “透明数据加密密钥管理 ”部分中,选择“ 配置透明数据加密”。
出现 透明数据加密 菜单时,请查看此复制数据库的 CMK 设置。 设置和密钥应使用源数据库中所用的相同标识和密钥进行填充。
选择“应用”以继续,然后选择“查看 + 创建”和“创建”来创建副本数据库。
要创建具有数据库级客户管理密钥的二级副本,请遵循以下步骤:
使用Azure CLI、PowerShell或REST API检查源数据库当前使用的密钥列表。 关于命令,请参见“查看 Azure SQL 数据库 上的数据库级客户管理密钥设置。
转到 Azure 门户,然后导航到配置了数据库级别客户管理的密钥的 Azure SQL 数据库。 在数据库的“数据管理”设置下,选择“副本”。 选择“创建副本”,创建数据库的次要副本。
此时会显示“创建 SQL 数据库 - 异地副本”菜单。 对此数据库使用辅助服务器,但采用与你尝试复制的数据库相同的设置。 在 “透明数据加密密钥管理 ”部分中,选择“ 配置透明数据加密”。
出现 透明数据加密 菜单时,请查看此数据库副本的 CMK 设置。 设置和密钥应使用主数据库中所用的相同标识和密钥进行填充。
选择应用以继续,然后选择查看 + 创建和创建以创建二级副本。
有关安装当前版本的 Azure CLI 的信息,请参阅安装 Azure CLI 一文。
使用 expand-keys 参数并将 current 用作 keys-filter,预填充主数据库当前使用的密钥列表。
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。
使用 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 数据库的 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 数据库的备份恢复,请参阅 从 Azure 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。
使用 Get-AzSqlDatabase 命令以及 -ExpandKeyList 和 -KeysFilter "2023-01-01" 参数,预先填充主数据库所使用的密钥列表(2023-01-01 是你希望将数据库还原到的时间点示例)。 如果要检索所有密钥,请排除 -KeysFilter。
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter <Timestamp>
选择用户分配的托管标识(如果配置跨租户访问,则还需选择联邦客户端 ID)。
使用 Restore-AzSqlDatabase 命令并带上 -FromPointInTimeBackup 参数,在 API 调用中使用 -KeyList、-AssignIdentity、-UserAssignedIdentityId、-EncryptionProtector 参数(如有必要,还包括 -FederatedClientId),提供从上述步骤获取的预先填充的密钥列表,以及上述标识(如果配置跨租户访问,还包括联合客户端 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 数据库的备份恢复,请参阅 从 Azure 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。
使用 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)。
使用命令 Restore-AzSqlDatabase 并配合 -FromDeletedDatabaseBackup 参数,在 API 调用中使用 -KeyList、-AssignIdentity、-UserAssignedIdentityId、-EncryptionProtector 参数(如有必要,还包括 -FederatedClientId)提供从上述步骤中获取的预填充密钥列表以及上述标识(如果配置跨租户访问,还包括联合客户端 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 数据库的备份恢复,请参阅 从 Azure SQL 数据库中的备份还原数据库。
转到 Azure 门户,然后导航到你想要在其中还原数据库的逻辑服务器。
在“概述”菜单中,选择“创建数据库”。
此时会显示“创建 SQL 数据库”菜单。 填充新数据库的“基本信息”和“网络”选项卡。 在“其他设置”中,在“使用现有数据”部分选择“备份”,然后选择异地复制的备份。
转到“ 安全 ”选项卡。在 “透明数据加密密钥管理 ”部分中,选择“ 配置透明数据加密”。
出现“透明数据加密”菜单时,选择“数据库级别客户管理的密钥”(CMK)。
用户分配的托管标识、客户管理的密钥和其他数据库密钥必须与要还原的源数据库匹配。 确保用户分配的托管标识能访问包含在备份中使用的客户管理密钥的 Azure 密钥保管库。
选择“应用”以继续,然后选择“查看 + 创建”和“创建”来创建备份数据库。
有关安装当前版本的 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。
使用 Get-AzSqlDatabaseGeoBackup 命令和 -ExpandKeyList 预填充主数据库使用的密钥列表,以检索所有密钥。
$database = Get-AzSqlDatabaseGeoBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <databaseName> -ExpandKeyList
重要
DatabaseId 可以通过列出服务器中所有可还原的已删除数据库来检索,其格式为 databaseName,deletedTimestamp。
选择用户分配的托管标识;如果配置跨租户访问,还要选择联合客户端 ID。
使用 Restore-AzSqlDatabase 命令和 -FromGeoBackup 参数,并在 API 调用中使用 -KeyList、-AssignIdentity、-UserAssignedIdentityId、-EncryptionProtector 参数(如有必要,还包括 -FederatedClientId),提供从上述步骤中获取的预填充密钥列表以及上述标识信息(如果配置跨租户访问,还包括联合客户端 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 还原目标。
复制或还原数据库的自动密钥轮换选项
你可以配置新复制或恢复的数据库,自动轮换用于透明数据加密的客户管理密钥。 有关如何启用自动密钥旋转的信息,请参见 数据库层面的自动密钥旋转。
相关内容