Dotyczy:
Azure SQL Database
Uwaga
TDE CMK na poziomie bazy danych jest dostępne w usłudze Azure SQL Database (we wszystkich edycjach usługi SQL Database). Nie jest ona dostępna dla usługi Azure SQL Managed Instance, SQL Server na lokalnych maszynach, maszyn wirtualnych Azure oraz usługi Azure Synapse Analytics (dedykowane zasoby SQL (dawniej SQL DW)).
W tym przewodniku przedstawiono kroki konfigurowania replikacji geograficznej i przywracania kopii zapasowej w usłudze Azure SQL Database. Usługa Azure SQL Database jest skonfigurowana przy użyciu funkcji Transparent Data Encryption (TDE) i kluczy zarządzanych przez klienta (CMK) na poziomie bazy danych przy użyciu tożsamości zarządzanej przypisanej przez użytkownika w celu uzyskania dostępu do usługi Azure Key Vault. Na potrzeby tego przewodnika zarówno usługa Azure Key Vault, jak i serwer logiczny usługi Azure SQL znajdują się w tej samej dzierżawie Microsoft Entra, ale mogą znajdować się w różnych dzierżawach.
Wymagania wstępne
Uwaga
Ten sam przewodnik można zastosować do konfigurowania kluczy zarządzanych przez klienta na poziomie bazy danych w innej dzierżawie, uwzględniając parametr identyfikatora klienta federacyjnego. Aby uzyskać więcej informacji, zobacz Zarządzanie tożsamościami i kluczami dla funkcji TDE przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych.
Ważne
Po utworzeniu lub przywróceniu bazy nowej bazy danych są te same ustawienia co baza źródłowa, ale mogą brakować kluczy. We wszystkich przypadkach, gdy nowa baza danych jest tworzona z bazy źródłowej, liczba kluczy zgłaszanych dla docelowej bazy może być mniejsza niż liczba kluczy zgłaszanych dla bazy źródłowych. Liczba zwracanych kluczy zależy od indywidualnych wymagań cech użytych do stworzenia docelowej bazy danych. Aby wypisać wszystkie dostępne klucze dla nowo utworzonej bazy danych, użyj dostępnych API w sekcji Zobacz ustawienia kluczy zarządzane przez klienta na poziomie bazy danych w Azure SQL Database.
Utwórz bazę danych Azure SQL Database z kluczami zarządzanymi przez klienta na poziomie bazy danych jako bazę pomocniczą lub kopię
Skorzystaj z poniższych instrukcji lub poleceń, aby utworzyć replikę pomocniczą lub skopiować obiekt docelowy usługi Azure SQL Database skonfigurowany z kluczami zarządzanymi przez klienta na poziomie bazy danych. Tożsamość zarządzana przypisana przez użytkownika jest wymagana do konfigurowania klucza zarządzanego przez klienta na potrzeby przezroczystego szyfrowania danych w fazie tworzenia bazy danych.
Aby utworzyć bazę danych w usłudze Azure SQL Database jako kopię z kluczami zarządzanymi przez klienta na poziomie bazy danych, wykonaj następujące kroki:
Użyj Azure CLI, PowerShell lub REST API, aby sprawdzić listę kluczy używanych przez źródłową bazę danych. Aby zobaczyć polecenia, zobacz Wyświetlanie ustawień klucza zarządzanego przez klienta na poziomie bazy danych w usłudze Azure SQL Database.
Przejdź do witryny Azure Portal i przejdź do usługi Azure SQL Database skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych. Utwórz kopię bazy danych, wybierając pozycję Kopiuj z menu Przegląd bazy danych.
Zostanie wyświetlone menu Tworzenie bazy danych SQL Database — kopiowanie bazy danych . Użyj innego serwera dla tej bazy danych, ale tych samych ustawień co baza danych, którą próbujesz skopiować. W sekcji Zarządzanie kluczami transparent data encryption wybierz pozycję Konfiguruj przezroczyste szyfrowanie danych.
Po wyświetleniu menu Transparent Data Encryption przejrzyj ustawienia Klucza Zarządzanego przez Klienta (CMK) dla tej kopii bazy danych. Ustawienia i klucze powinny być wypełnione tymi samymi tożsamościami i kluczami używanymi w źródłowej bazie danych.
Wybierz pozycję Zastosuj, aby kontynuować, a następnie wybierz pozycję Przejrzyj i utwórz oraz Utwórz, aby utworzyć kopię bazy danych.
Aby stworzyć wtórną replikę z kluczami zarządzanymi przez klienta na poziomie bazy danych, należy postępować zgodnie z następującymi krokami:
Użyj Azure CLI, PowerShell lub REST API, aby sprawdzić listę kluczy używanych przez źródłową bazę danych. Polecenia znajdują się w artykule Wyświetlanie ustawień klucza zarządzanego przez klienta na poziomie bazy danych w Azure SQL Database.
Przejdź do witryny Azure Portal i przejdź do usługi Azure SQL Database skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych. W obszarze Ustawienia zarządzania danymi dla bazy danych wybierz pozycję Repliki. Wybierz pozycję Utwórz replikę , aby utworzyć replikę pomocniczą bazy danych.
Zostanie wyświetlone menu Tworzenie bazy danych SQL — replika geograficzna . Użyj serwera pomocniczego dla tej bazy danych, ale te same ustawienia co baza danych, którą próbujesz replikować. W sekcji Zarządzanie kluczami transparent data encryption wybierz pozycję Konfiguruj przezroczyste szyfrowanie danych.
Po wyświetleniu menu Transparent Data Encryption przejrzyj ustawienia klucza głównego dla tej repliki bazy danych. Ustawienia i klucze powinny być wypełnione tymi samymi tożsamościami i kluczami używanymi w podstawowej bazie danych.
Wybierz Zastosowaj , aby kontynuować, a następnie wybierz Przeglądaj + tworz, oraz Utwórz, aby utworzyć wtórną replikę.
Aby uzyskać informacje na temat instalowania bieżącej wersji interfejsu wiersza polecenia platformy Azure, zobacz Artykuł Instalowanie interfejsu wiersza polecenia platformy Azure.
Wstępnie wypełnij listę bieżących kluczy używanych przez podstawową bazę danych za pomocą parametru expand-keys, używając current jako keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter current
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Utwórz nową bazę danych jako bazę pomocniczą i podaj wstępnie wypełnioną listę kluczy uzyskaną ze źródłowej bazy danych oraz wyżej wymienionej tożsamości (oraz identyfikator klienta federacyjnego podczas konfigurowania dostępu między dzierżawami).
# 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
Ważne
$keys to oddzielona spacją lista kluczy pobranych ze źródłowej bazy danych.
Aby utworzyć kopię bazy danych, można użyć polecenia az sql db copy z tymi samymi parametrami.
# 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
Aby uzyskać instrukcje instalacji modułu Az programu PowerShell, zobacz Instalowanie programu Azure PowerShell.
Wypełnij listę aktualnie używanych kluczy przez podstawową bazę danych za pomocą polecenia Get-AzSqlDatabase oraz parametrów -ExpandKeyList i -KeysFilter "current". Wyklucz -KeysFilter , jeśli chcesz pobrać wszystkie klucze.
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (oraz sfederowany identyfikator klienta w przypadku konfigurowania dostępu między dzierżawami).
Utwórz nową bazę danych jako pomocniczą za pomocą polecenia New-AzSqlDatabaseSecondary i w wywołaniu interfejsu API podaj wstępnie wypełnioną listę kluczy uzyskaną ze źródłowej bazy danych oraz powyższą tożsamość (a także sfederowany identyfikator klienta, jeśli konfigurujesz dostęp między dzierżawami), używając parametrów , , , (oraz w razie potrzeby ).
# 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
Aby utworzyć kopię bazy danych, można użyć polecenia New-AzSqlDatabaseCopy z tymi samymi parametrami.
# 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
Oto przykład szablonu ARM, który tworzy replikę pomocniczą i kopię bazy danych w usłudze Azure SQL Database skonfigurowanej przy użyciu tożsamości zarządzanej przypisanej przez użytkownika oraz szyfrowania TDE zarządzanego przez klienta na poziomie bazy danych.
Aby uzyskać więcej informacji i szablonów usługi ARM, zobacz Szablony usługi Azure Resource Manager dla usługi Azure SQL Database.
Użyj opcji wdrożenia niestandardowego w portalu Azure i utwórz własny szablon w edytorze. Następnie zapisz konfigurację po wklejeniu przykładu.
Wstępnie wypełnij listę bieżących kluczy używanych przez podstawową bazę danych przy użyciu następującego żądania interfejsu API REST:
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'))
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (oraz identyfikator klienta federacyjnego podczas konfigurowania dostępu międzydzierżawowego).
Utwórz nową bazę danych jako pomocniczą i podaj w szablonie ARM jako parametr keys_to_add wstępnie wypełnioną listę kluczy uzyskanych ze źródłowej bazy danych oraz powyższą tożsamość (a także identyfikator klienta federacyjnego, jeśli konfigurujesz dostęp między dzierżawami).
{
"$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')]"
}
}
]
}
Przykład parametru encryption_protector i keys_to_add:
"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"
}
Aby utworzyć kopię bazy danych, można użyć następującego szablonu z tymi samymi parametrami.
{
"$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')]"
}
}
]
}
Przywracanie bazy danych Azure SQL Database przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych
W tej sekcji przedstawiono procedurę przywracania bazy danych Azure SQL Database skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych. Tożsamość zarządzana przypisana przez użytkownika jest wymagana do konfigurowania klucza zarządzanego przez klienta na potrzeby przezroczystego szyfrowania danych w fazie tworzenia bazy danych.
przywracanie do punktu w czasie
W poniższej sekcji opisano sposób przywracania bazy danych skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych do danego punktu w czasie. Aby dowiedzieć się więcej na temat odzyskiwania kopii zapasowej dla usługi SQL Database, zobacz Przywracanie bazy danych z kopii zapasowej w usłudze Azure SQL Database.
Przejdź do witryny Azure Portal i przejdź do usługi Azure SQL Database skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych, które chcesz przywrócić.
Aby przywrócić bazę danych do punktu w czasie, wybierz pozycję Przywróć z menu Przegląd bazy danych.
Zostanie wyświetlone menu Tworzenie bazy danych SQL Database — Przywracanie bazy danych . Podaj wymagane informacje o źródle i bazie danych. W sekcji Zarządzanie kluczami transparent data encryption wybierz pozycję Konfiguruj przezroczyste szyfrowanie danych.
Po pojawieniu się menu Transparent Data Encryption, przejrzyj ustawienia CMK (Klucz Zarządzany przez Klienta) dla bazy danych. Ustawienia i klucze powinny zostać wypełnione tymi samymi tożsamościami i kluczami używanymi w bazie danych, którą próbujesz przywrócić.
Wybierz pozycję Zastosuj, aby kontynuować, a następnie wybierz pozycję Przejrzyj i utwórz i Utwórz, aby utworzyć kopię bazy danych.
Aby uzyskać informacje na temat instalowania bieżącej wersji interfejsu wiersza polecenia platformy Azure, zobacz Artykuł Instalowanie interfejsu wiersza polecenia platformy Azure.
Wstępnie uzupełnij listę kluczy używanych przez podstawową bazę danych przy użyciu parametru expand-keys, podając punkt przywracania w czasie jako keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter $timestamp
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Utwórz nową bazę danych jako cel przywracania i podaj wstępnie wypełnioną listę kluczy uzyskanych ze źródłowej bazy danych oraz podaną powyżej tożsamość (a w przypadku konfigurowania dostępu między dzierżawami także identyfikator federacyjnego klienta).
# 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
Ważne
$keys to oddzielona spacją lista kluczy pobranych ze źródłowej bazy danych.
Aby uzyskać instrukcje instalacji modułu Az programu PowerShell, zobacz Instalowanie programu Azure PowerShell.
Wstępnie uzupełnij listę kluczy używanych w podstawowej bazie danych przy użyciu polecenia Get-AzSqlDatabase oraz parametrów -ExpandKeyList i -KeysFilter "2023-01-01" (2023-01-01 to przykład punktu w czasie, do którego chcesz przywrócić bazę danych). Wyklucz -KeysFilter , jeśli chcesz pobrać wszystkie klucze.
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter <Timestamp>
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (oraz federacyjny identyfikator klienta w przypadku konfigurowania dostępu między dzierżawcami).
Użyj polecenia Restore-AzSqlDatabase za pomocą parametru -FromPointInTimeBackup i podaj we wstępnie uzupełnionej liście kluczy uzyskanej w powyższych krokach oraz tożsamość podaną powyżej (a także identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami) w wywołaniu interfejsu API przy użyciu parametrów -KeyList, -AssignIdentity, -UserAssignedIdentityId, -EncryptionProtector (oraz, w razie potrzeby, -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
Przywracanie usuniętej bazy danych
W poniższej sekcji opisano sposób przywracania usuniętej bazy danych skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych. Aby dowiedzieć się więcej na temat odzyskiwania kopii zapasowej dla usługi SQL Database, zobacz Przywracanie bazy danych z kopii zapasowej w usłudze Azure SQL Database.
Przejdź do witryny Azure Portal i przejdź do serwera logicznego usuniętej bazy danych, którą chcesz przywrócić. W obszarze Zarządzanie danymi wybierz pozycję Usunięte bazy danych.
Wybierz usuniętą bazę danych, którą chcesz przywrócić.
Zostanie wyświetlone menu Tworzenie bazy danych SQL Database — Przywracanie bazy danych . Podaj wymagane informacje o źródle i bazie danych. W sekcji Zarządzanie kluczami transparent data encryption wybierz pozycję Konfiguruj przezroczyste szyfrowanie danych.
Po wyświetleniu menu Transparent Data Encryption skonfiguruj sekcję Tożsamość zarządzana przypisana przez użytkownika, Klucz zarządzany przez klienta i Dodatkowe klucze bazy danych dla bazy danych.
Wybierz pozycję Zastosuj, aby kontynuować, a następnie wybierz pozycję Przejrzyj i utwórz oraz Utwórz, aby utworzyć kopię bazy danych.
Aby uzyskać informacje na temat instalowania bieżącej wersji interfejsu wiersza polecenia platformy Azure, zobacz Artykuł Instalowanie interfejsu wiersza polecenia platformy Azure.
Wstępnie wypełnia listę kluczy używanych przez porzuconą bazę danych przy użyciu parametru expand-keys . Zaleca się przekazanie wszystkich kluczy używanych przez źródłową bazę danych. Możesz również podjąć próbę przywrócenia przy użyciu kluczy podanych w czasie usuwania przy użyciu parametru keys-filter .
az sql db show-deleted --name $databaseName --resource-group $resourceGroup --server $serverName --restorable-dropped-database-id "databaseName,133201549661600000" --expand-keys
Ważne
restorable-dropped-database-id można pobrać, wyświetlając listę wszystkich przywracalnych usuniętych baz danych na serwerze; ma ono postać databaseName,deletedTimestamp.
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Utwórz nową bazę danych jako cel przywracania i podaj wstępnie wypełnioną listę kluczy uzyskaną z usuniętej źródłowej bazy danych oraz powyższą tożsamość (a także identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
# 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"
Ważne
$keys to oddzielona spacją lista kluczy pobranych ze źródłowej bazy danych.
Aby uzyskać instrukcje instalacji modułu Az programu PowerShell, zobacz Instalowanie programu Azure PowerShell.
Wstępnie wypełnia listę kluczy używanych przez podstawową bazę danych przy użyciu polecenia Get-AzSqlDeletedDatabaseBackup i parametru -ExpandKeyList . Zaleca się przekazanie wszystkich kluczy używanych przez źródłową bazę danych. Możesz również podjąć próbę przywrócenia przy użyciu kluczy podanych w czasie usuwania przy użyciu parametru -KeysFilter .
$database = Get-AzSqlDeletedDatabaseBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseId "dbName,133201549661600000" -ExpandKeyList -DeletionDate "2/6/2023" -DatabaseName <databaseName>
Ważne
DatabaseId można uzyskać, wyświetlając listę wszystkich usuniętych baz danych na serwerze, które można przywrócić, i ma ono format databaseName,deletedTimestamp.
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Użyj polecenia Restore-AzSqlDatabase z parametrem -FromDeletedDatabaseBackup i podaj w wywołaniu interfejsu API, za pomocą parametrów -KeyList, -AssignIdentity, -UserAssignedIdentityId, -EncryptionProtector (a w razie potrzeby także -FederatedClientId), wstępnie wypełnioną listę kluczy uzyskanych w powyższych krokach oraz wspomnianą wyżej tożsamość (a także identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
$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
Przywracanie geograficzne
W poniższej sekcji opisano sposób przywracania geograficznie replikowanej kopii zapasowej bazy danych skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych. Aby dowiedzieć się więcej na temat odzyskiwania kopii zapasowej dla usługi SQL Database, zobacz Przywracanie bazy danych z kopii zapasowej w usłudze Azure SQL Database.
Przejdź do witryny Azure Portal i przejdź do serwera logicznego, na którym chcesz przywrócić bazę danych.
W menu Przegląd wybierz pozycję Utwórz bazę danych.
Zostanie wyświetlone menu Tworzenie bazy danych SQL. Wypełnij zakładki Podstawowe i Sieć dla nowej bazy danych. W obszarze Dodatkowe ustawienia wybierz pozycję Kopia zapasowa dla sekcji Użyj istniejących danych i wybierz kopię zapasową z replikacją geograficzną.
Przejdź do karty Zabezpieczenia . W sekcji Zarządzanie kluczami transparent data encryption wybierz pozycję Konfiguruj przezroczyste szyfrowanie danych.
Po wyświetleniu menu Transparent Data Encryption wybierz pozycję Klucz zarządzany przez klienta (CMK) na poziomie bazy danych.
Tożsamość zarządzana przypisana przez użytkownika, klucz zarządzany przez klienta i dodatkowe klucze bazy danych muszą być zgodne ze źródłową bazą danych, którą chcesz przywrócić. Upewnij się, że tożsamość zarządzana przypisana przez użytkownika ma dostęp do usługi Azure Key Vault, która zawiera klucz zarządzany przez klienta, który został użyty w kopii zapasowej.
Wybierz pozycję Zastosuj, aby kontynuować, a następnie wybierz pozycję Przejrzyj i utwórz oraz Utwórz, aby utworzyć zapasową bazę danych.
Aby uzyskać informacje na temat instalowania bieżącej wersji interfejsu wiersza polecenia platformy Azure, zobacz Artykuł Instalowanie interfejsu wiersza polecenia platformy Azure.
Wstępnie wypełnia listę kluczy używanych przez geograficzną kopię zapasową bazy danych skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych przy użyciu parametru expand-keys .
az sql db geo-backup --database-name $databaseName --g $resourceGroup --server $serverName --expand-keys
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Utwórz nową bazę danych jako obiekt docelowy przywracania geograficznego i podaj wstępnie wypełnioną listę kluczy uzyskanych z usuniętej źródłowej bazy danych i powyższej tożsamości (oraz identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
# 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
Ważne
$keys to oddzielona spacją lista kluczy pobranych ze źródłowej bazy danych.
Aby uzyskać instrukcje instalacji modułu Az programu PowerShell, zobacz Instalowanie programu Azure PowerShell.
Wstępnie wypełniaj listę kluczy używanych przez podstawową bazę danych przy użyciu polecenia Get-AzSqlDatabaseGeoBackup i parametru -ExpandKeyList , aby pobrać wszystkie klucze.
$database = Get-AzSqlDatabaseGeoBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <databaseName> -ExpandKeyList
Ważne
DatabaseId można pobrać przez wyświetlenie listy wszystkich usuniętych baz danych, które można przywrócić, na serwerze i ma ono postać databaseName,deletedTimestamp.
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (oraz identyfikator sfederowanego klienta w przypadku konfigurowania dostępu międzydzierżawowego).
Użyj polecenia Restore-AzSqlDatabase z parametrem -FromGeoBackup i podaj w wywołaniu interfejsu API wstępnie wypełnioną listę kluczy uzyskaną w powyższych krokach oraz powyższą tożsamość (a także sfederowany identyfikator klienta, jeśli konfigurujesz dostęp między dzierżawami), używając parametrów -KeyList, -AssignIdentity, -UserAssignedIdentityId, -EncryptionProtector (a w razie potrzeby także -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
Ważne
Kopie zapasowe długoterminowego przechowywania (LTR) nie udostępniają listy kluczy używanych przez kopię zapasową. Aby przywrócić kopię zapasową LTR, wszystkie klucze używane przez źródłową bazę danych muszą zostać przekazane do obiektu docelowego przywracania LTR.
Opcja automatycznego obracania kluczy dla kopiowanych lub przywróconych baz danych
Możesz skonfigurować nowo skopiowane lub przywrócone bazy danych tak, aby automatycznie rotowały klucz zarządzany przez klienta używany do transparentnego szyfrowania danych. Aby uzyskać informacje o tym, jak włączyć automatyczną rotację kluczy, zobacz Automatyczna rotacja kluczy na poziomie bazy danych.
Treści powiązane