gäller för:
Azure SQL Database
Anmärkning
TDE CMK på databasnivå är tillgängligt för Azure SQL Database (alla SQL Database-utgåvor). Den är inte tillgänglig för Azure SQL Managed Instance, SQL Server lokalt, virtuella Azure-datorer och Azure Synapse Analytics (dedikerade SQL-pooler (tidigare SQL DW)).
I den här guiden går vi igenom stegen för att konfigurera geo-replikering och återställning av säkerhetskopior i en Azure SQL Database. Azure SQL Database konfigureras med transparent datakryptering (TDE) och kundhanterade nycklar (CMK) på databasnivå, med hjälp av en användartilldelad hanterad identitet för att få åtkomst till Azure Key Vault. Både Azure Key Vault och den logiska servern för Azure SQL finns i samma Microsoft Entra-klientorganisation för den här guiden, men de kan finnas i olika klientorganisationer.
Förutsättningar
Viktigt!
När databasen har skapats eller återställts visar menyn Transparent datakryptering i Azure-portalen den nya databasen med samma inställningar som källdatabasen, men nycklar kan saknas. I alla fall där en ny databas skapas från en källdatabas kan antalet nycklar som visas för en måldatabas i Azure-portalen Ytterligare databasnycklar vara mindre än antalet nycklar som visas för en källdatabas. Det beror på att antalet visade nycklar beror på enskilda funktionskrav som används för att skapa en måldatabas. Om du vill visa en lista över alla nycklar som är tillgängliga för en nyligen skapad databas använder du de tillgängliga API:erna i Visa kundhanterade nyckelinställningar på databasnivå i en Azure SQL Database.
Skapa en Azure SQL-databas med kundhanterade nycklar på databasnivå som en sekundär databas eller kopia.
Använd följande instruktioner eller kommandon för att skapa en sekundär replik eller kopia av en Azure SQL Database som konfigurerats med kundhanterade nycklar på databasnivå. En användartilldelad hanterad identitet krävs för att konfigurera en kundhanterad nyckel för transparent datakryptering under fasen för att skapa databasen.
Skapa en databaskopia som har kundhanterade nycklar på databasnivå
Följ dessa steg för att skapa en databas i Azure SQL Database som en kopia med kundhanterade nycklar på databasnivå:
Gå till Azure-portalen och gå till Azure SQL Database som konfigurerats med kundhanterade nycklar på databasnivå. Öppna fliken Transparent datakryptering i menyn Datakryptering och kontrollera listan över aktuella nycklar som används av databasen.
Skapa en kopia av databasen genom att välja Kopierapå översiktsmenyn i databasen.
Menyn Skapa SQL Database – Kopiera databas visas. Använd en annan server för den här databasen, men samma inställningar som den databas som du försöker kopiera. I avsnittet Transparent datakrypteringsnyckelhantering väljer du Konfigurera transparent datakryptering.
När menyn Transparent datakryptering visas granskar du CMK-inställningarna för den här kopieringsdatabasen. Inställningarna och nycklarna ska fyllas i med samma identitet och nycklar som används i källdatabasen.
Välj Använd för att fortsätta och välj sedan Granska + skapa och Skapa för att skapa kopieringsdatabasen.
Skapa en sekundär replik som har kundhanterade nycklar på databasnivå
Gå till Azure-portalen och gå till Azure SQL Database som konfigurerats med kundhanterade nycklar på databasnivå. Öppna menyn Transparent datakryptering och kontrollera listan över aktuella nycklar som används av databasen.
Under Datahanteringsinställningar för databasen väljer du Repliker. Välj Skapa replik för att skapa en sekundär replik av databasen.
Menyn Skapa SQL Database – Geo Replica visas. Använd en sekundär server för den här databasen, men samma inställningar som den databas som du försöker replikera. I avsnittet Transparent datakrypteringsnyckelhantering väljer du Konfigurera transparent datakryptering.
När menyn Transparent datakryptering visas granskar du CMK-inställningarna för den här databasrepliken. Inställningarna och nycklarna ska fyllas i med samma identitet och nycklar som används i den primära databasen.
Välj Använd för att fortsätta och välj sedan Granska + skapa och Skapa för att skapa kopieringsdatabasen.
Information om hur du installerar den aktuella versionen av Azure CLI finns i artikeln Installera Azure CLI.
Fyll i listan över aktuella nycklar som används av den primära databasen med parametern expand-keys med current som keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter current
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Skapa en ny databas som sekundär och ange den förifyllda listan över nycklar som hämtats från källdatabasen och ovanstående identitet (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
# 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
Viktigt!
$keys är en lista som är avgränsad med blanksteg över nycklar som hämtats från källdatabasen.
Om du vill skapa en kopia av databasen kan az sql db-kopia användas med samma parametrar.
# 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
Installationsinstruktioner för Az PowerShell-moduler finns i Installera Azure PowerShell.
Fyll i listan över aktuella nycklar som används av den primära databasen med kommandot Get-AzSqlDatabase och parametrarna -ExpandKeyList och -KeysFilter "current" . Exkludera -KeysFilter om du vill hämta alla nycklar.
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Skapa en ny databas som sekundär med kommandot New-AzSqlDatabaseSecondary och ange den ifyllda listan över nycklar som hämtats från källdatabasen och ovanstående identitet (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer) i API-anropet med parametrarna -KeyList, -AssignIdentity, -UserAssignedIdentityId, -EncryptionProtector (och vid behov) -FederatedClientId.
# 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
Om du vill skapa en kopia av databasen kan New-AzSqlDatabaseCopy användas med samma parametrar.
# 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
Här är ett exempel på en ARM-mall som skapar en sekundär replik och kopia av en Azure SQL Database som konfigurerats med en användartilldelad hanterad identitet och kundhanterad TDE på databasnivå.
Mer information och ARM-mallar finns i Azure Resource Manager-mallar för Azure SQL Database.
Använd en anpassad distribution i Azure-portalenoch Skapa en egen mall i redigeraren. Sedan Spara konfigurationen när du har klistrat in exemplet.
Fyll i listan över aktuella nycklar som används av den primära databasen i förväg med hjälp av följande REST API-begäran:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('current'))
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Skapa en ny databas som sekundär och ange den ifyllda listan över nycklar som hämtats från källdatabasen och ovanstående identitet (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer) i ARM-mallen keys_to_add som parameter.
{
"$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')]"
}
}
]
}
Ett exempel på parametern encryption_protector och keys_to_add är:
"keys_to_add": {
"value": {
"https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": {},
"https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000": {}
}
},
"encryption_protector": {
"value": "https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
}
Om du vill skapa en kopia av databasen kan följande mall användas med samma parametrar.
{
"$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')]"
}
}
]
}
Återställa en Azure SQL Database med kundhanterade nycklar på databasnivå
I det här avsnittet går vi igenom stegen för att återställa en Azure SQL Database som konfigurerats med kundhanterade nycklar på databasnivå. En användartilldelad hanterad identitet krävs för att konfigurera en kundhanterad nyckel för transparent datakryptering under fasen för att skapa databasen.
Återställning till en tidpunkt
I följande avsnitt beskrivs hur du återställer en databas som konfigurerats med kundhanterade nycklar på databasnivå till en viss tidpunkt. Mer information om säkerhetskopieringsåterställning för SQL Database finns i Återställa en databas från en säkerhetskopia i Azure SQL Database.
Gå till Azure-portalen och gå till Azure SQL Database som konfigurerats med kundhanterade nycklar på databasnivå som du vill återställa.
Om du vill återställa databasen till en tidpunkt väljer du Återställpå översiktsmenyn i databasen.
Menyn Skapa SQL Database – Återställ databas visas. Fyll i den käll- och databasinformation som behövs. I avsnittet Transparent datakrypteringsnyckelhantering väljer du Konfigurera transparent datakryptering.
När menyn Transparent datakryptering visas granskar du CMK-inställningarna för databasen. Inställningarna och nycklarna ska fyllas i med samma identitet och nycklar som används i databasen som du försöker återställa.
Välj Använd för att fortsätta och välj sedan Granska + skapa och Skapa för att skapa kopieringsdatabasen.
Information om hur du installerar den aktuella versionen av Azure CLI finns i artikeln Installera Azure CLI.
Använd parametern expand-keys för att förbefolka listan över nycklar som används av den primära databasen med din återställningspunkt i tid som keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter $timestamp
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Skapa en ny databas som ett återställningsmål och ange den ifyllda listan över nycklar som hämtats från källdatabasen och ovanstående identitet (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
# 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
Viktigt!
$keys är en lista som är avgränsad med blanksteg över nycklar som hämtats från källdatabasen.
Installationsinstruktioner för Az PowerShell-moduler finns i Installera Azure PowerShell.
Fyll i listan över nycklar som används av den primära databasen med kommandot Get-AzSqlDatabase och parametrarna -ExpandKeyList och -KeysFilter "2023-01-01" (2023-01-01 är ett exempel på den tidpunkt då du vill återställa databasen till). Exkludera -KeysFilter om du vill hämta alla nycklar.
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter <Timestamp>
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Använd kommandot Restore-AzSqlDatabase med parametern -FromPointInTimeBackup och ange den förifyllda listan över nycklar som hämtats från ovanstående steg och ovanstående identitet (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer) i API-anropet med parametrarna -KeyList, -AssignIdentity, -UserAssignedIdentityId( -EncryptionProtector och vid behov) -FederatedClientId.
$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
Återställningen av databasen har avbrutits
I följande avsnitt beskrivs hur du återställer en borttagen databas som har konfigurerats med kundhanterade nycklar på databasnivå. Mer information om säkerhetskopieringsåterställning för SQL Database finns i Återställa en databas från en säkerhetskopia i Azure SQL Database.
Gå till Azure-portalen och gå till den logiska servern för den borttagna databas som du vill återställa. Under Datahantering väljer du Borttagna databaser.
Välj den borttagna databas som du vill återställa.
Menyn Skapa SQL Database – Återställ databas visas. Fyll i den käll- och databasinformation som behövs. I avsnittet Transparent datakrypteringsnyckelhantering väljer du Konfigurera transparent datakryptering.
När menyn Transparent datakryptering visas konfigurerar du avsnittet Användartilldelad hanterad identitet, Kundhanterad nyckel och Ytterligare databasnycklar för databasen.
Välj Använd för att fortsätta och välj sedan Granska + skapa och Skapa för att skapa kopieringsdatabasen.
Information om hur du installerar den aktuella versionen av Azure CLI finns i artikeln Installera Azure CLI.
Fyll i listan över nycklar som används av den borttagna databasen i förväg med hjälp av parametern expand-keys . Vi rekommenderar att du skickar alla nycklar som källdatabasen använde. Du kan också försöka återställa med de nycklar som angavs vid borttagningen med hjälp av parametern keys-filter .
az sql db show-deleted --name $databaseName --resource-group $resourceGroup --server $serverName --restorable-dropped-database-id "databaseName,133201549661600000" --expand-keys
Viktigt!
restorable-dropped-database-id kan hämtas genom att visa en lista över alla återställningsbara borttagna databaser på servern och är av formatet databaseName,deletedTimestamp.
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Skapa en ny databas som ett återställningsmål och ange den förifyllda listan över nycklar som hämtats från den borttagna källdatabasen och identiteten ovan (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
# 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"
Viktigt!
$keys är en blankstegsavgränsad lista över nycklar som hämtats från källdatabasen.
Installationsinstruktioner för Az PowerShell-moduler finns i Installera Azure PowerShell.
Fyll i listan över nycklar som används av den primära databasen i förväg med kommandot Get-AzSqlDeletedDatabaseBackup och parametern -ExpandKeyList . Vi rekommenderar att du skickar alla nycklar som källdatabasen använde. Du kan också försöka återställa med de nycklar som angavs vid borttagningen med hjälp av parametern -KeysFilter .
$database = Get-AzSqlDeletedDatabaseBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseId "dbName,133201549661600000" -ExpandKeyList -DeletionDate "2/6/2023" -DatabaseName <databaseName>
Viktigt!
DatabaseId kan hämtas genom att visa en lista över alla återställningsbara borttagna databaser på servern och är av formatet databaseName,deletedTimestamp.
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Använd kommandot Restore-AzSqlDatabase med parametern -FromDeletedDatabaseBackup och ange den förifyllda listan över nycklar som hämtats från ovanstående steg och ovanstående identitet (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer) i API-anropet med parametrarna -KeyList, -AssignIdentity, -UserAssignedIdentityId( -EncryptionProtector och vid behov) -FederatedClientId.
$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
Geo-återställning
I följande avsnitt beskrivs hur du återställer en geo-replikerad säkerhetskopia av databasen som har konfigurerats med kundhanterade nycklar på databasnivå. Mer information om säkerhetskopieringsåterställning för SQL Database finns i Återställa en databas från en säkerhetskopia i Azure SQL Database.
Gå till Azure-portalen och gå till den logiska server där du vill återställa databasen.
I menyn Översikt väljer du Skapa databas.
Menyn Skapa SQL-databas visas. Fyll i informationen på flikarna Grundläggande och Nätverk för din nya databas. I Ytterligare inställningar väljer du Säkerhetskopiering för avsnittet Använd befintliga data och väljer en geo-replikerad säkerhetskopia.
Gå till fliken Säkerhet . I avsnittet Transparent datakrypteringsnyckelhantering väljer du Konfigurera transparent datakryptering.
När menyn Transparent datakryptering visas väljer du Kundhanterad nyckel (CMK) på databasnivå.
Användartilldelad hanterad identitet, kundhanterad nyckel och Ytterligare databasnycklar måste matcha den källdatabas som du vill återställa. Kontrollera att den användartilldelade hanterade identiteten har åtkomst till Azure Key Vault som innehåller den kundhanterade nyckel som användes i säkerhetskopian.
Välj Använd för att fortsätta och välj sedan Granska + skapa och Skapa för att skapa säkerhetskopieringsdatabasen.
Information om hur du installerar den aktuella versionen av Azure CLI finns i artikeln Installera Azure CLI.
Förifyll listan över nycklar som används av geo-backupen av databasen som har konfigurerats med kundhanterade nycklar på databasnivå med hjälp av expand-keys parametern.
az sql db geo-backup --database-name $databaseName --g $resourceGroup --server $serverName --expand-keys
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Skapa en ny databas som ett geo-återställningsmål och ange den förifyllda listan över nycklar som hämtats från den borttagna källdatabasen och identiteten ovan (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
# 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
Viktigt!
$keys är en blankstegsavgränsad lista över nycklar som hämtats från källdatabasen.
Installationsinstruktioner för Az PowerShell-moduler finns i Installera Azure PowerShell.
Fyll i listan över nycklar som används av den primära databasen i förväg med kommandot Get-AzSqlDatabaseGeoBackup och -ExpandKeyList för att hämta alla nycklar.
$database = Get-AzSqlDatabaseGeoBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <databaseName> -ExpandKeyList
Viktigt!
DatabaseId kan hämtas genom att visa en lista över alla återställningsbara borttagna databaser på servern och är av formatet databaseName,deletedTimestamp.
Välj den användartilldelade hanterade identiteten (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer).
Använd kommandot Restore-AzSqlDatabase med parametern -FromGeoBackup och ange den förifyllda listan över nycklar som hämtats från ovanstående steg och ovanstående identitet (och federerat klient-ID om du konfigurerar åtkomst mellan klientorganisationer) i API-anropet med parametrarna -KeyList, -AssignIdentity, -UserAssignedIdentityId( -EncryptionProtector och vid behov) -FederatedClientId.
$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
Viktigt!
Säkerhetskopior av långsiktig lagring (LTR) innehåller inte listan över nycklar som används vid säkerhetskopieringen. För att återställa en LTR-säkerhetskopia måste alla nycklar som används av källdatabasen skickas till LTR-återställningsmålet.
Alternativ för automatisk nyckelrotation för kopierade eller återställde databaser
Nyligen kopierade eller återställde databaser kan konfigureras för att automatiskt rotera den kundhanterade nyckel som används för transparent datakryptering. Information om hur du aktiverar automatisk nyckelrotation i Azure-portalen eller använder API:er finns i Automatisk nyckelrotation på databasnivå.
Relaterat innehåll