Udostępnij za pomocą


PRZYWRÓĆ KLUCZ GŁÓWNY (Transact-SQL)

Dotyczy:SQL Server

Importuje główny klucz bazy danych z pliku kopii zapasowej.

Ważne

SQL Server 2022 (16.x) wprowadza wsparcie dla kopii zapasowych i przywracania klucza głównego bazy danych do i z pamięci Azure Blob. Składnia jest URL dostępna tylko dla SQL Server 2022 (16.x) i nowszych.

Transact-SQL konwencje składni

Składnia

RESTORE MASTER KEY FROM 
  {
    FILE = 'path_to_file'
  | URL = 'Azure Blob storage URL'
  }  
    DECRYPTION BY PASSWORD = 'password'  
    ENCRYPTION BY PASSWORD = 'password'  
    [ FORCE ]  

Arguments

PLIK ='path_to_file'
Określa pełną ścieżkę, w tym nazwę pliku, do przechowywanego klucza głównego bazy danych. path_to_file może być ścieżką lokalną lub ścieżką UNC do lokalizacji sieciowej.

URL ='Azure Blob storage URL'
Dotyczy: PROGRAMU SQL Server 2022 (16.x) i nowszych
Czy adres URL do Twojej pamięci Azure Blob jest w formacie podobnym do https://<storage_account_name>.blob.core.windows.net/<storage_container_name>/<backup_file_name>.bak.

ODSZYFROWANIE ZA POMOCĄ HASŁA ='hasło'
Określa hasło potrzebne do odszyfrowania klucza głównego bazy danych, który jest importowany z pliku.

SZYFROWANIE ZA POMOCĄ HASŁA ='hasło'
Określa hasło używane do szyfrowania klucza głównego bazy danych po jego załadowaniu do bazy.

SIŁA
Określa, że proces RESTORE powinien trwać, nawet jeśli obecny klucz główny bazy danych nie jest otwarty lub jeśli SQL Server nie jest w stanie odszyfrować niektórych kluczy prywatnych zaszyfrowanych tym urządzeniem.

Uwagi

Po przywróceniu klucza głównego SQL Server odszyfrowuje wszystkie klucze zaszyfrowane aktualnie aktywnym kluczem głównym, a następnie szyfruje je przywróconym kluczem głównym. Ta wymagająca zasobowo operacja powinna być planowana w okresie niskiego zapotrzebowania. Jeśli aktualny klucz główny bazy danych nie jest otwarty lub nie można go otworzyć, albo jeśli którykolwiek z kluczy zaszyfrowanych przez niego nie da się odszyfrować, operacja przywracania kończy się niepowodzeniem.

Użyj opcji FORCE tylko wtedy, gdy klucz główny jest nieodwracalny lub jeśli odszyfrowywanie nie powiedzie się. Informacje zaszyfrowane wyłącznie kluczem nieodzyskalnym zostaną utracone.

Jeśli klucz główny został zaszyfrowany przez klucz głównego serwisu, przywrócony klucz główny również zostanie zaszyfrowany przez klucz głównego serwisu.

Jeśli w aktualnej bazie danych nie ma klucza głównego, RESTORE MASTER KEY tworzy klucz główny. Nowy klucz główny nie będzie automatycznie szyfrowany kluczem głównym serwisu.

Jeśli używasz SQL Server 2022 (16.x) i nowszych, i chcesz przywrócić klucz główny bazy danych z pamięci Azure Blob, obowiązują następujące warunki:

  1. Miej konto Azure.

  2. Utwórz politykę dostępu przechowywanego i przechowywanie danych współdostępowych.

  3. Stwórz dane poświadczenia SQL Server za pomocą podpisu współdzielonego dostępu.

    Więcej informacji znajdziesz w Tutorial: Używaj Azure Blob Storage z SQL Server.

Permissions

Wymaga uprawnień CONTROL w bazie danych.

Przykłady

Poniższy przykład przywraca główny klucz AdventureWorks2025 bazy danych z pliku.

USE AdventureWorks2022;  
RESTORE MASTER KEY   
    FROM FILE = 'c:\backups\keys\AdventureWorks2022_master_key'   
    DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'   
    ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';  
GO  

Poniższy przykład przywraca główny klucz AdventureWorks2025 bazy danych z pamięci Azure Blob.

USE AdventureWorks2022;  
RESTORE MASTER KEY   
    FROM URL = 'https://mydocsteststorage.blob.core.windows.net/mytestcontainer/AdventureWorks2022_master_key.bak'   
    DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'   
    ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';  
GO  

Zobacz także

UTWÓRZ KLUCZ GŁÓWNY (Transact-SQL)
KLUCZ MISTRZA ZMIANY (Transact-SQL)
Hierarchia szyfrowania
PRZYWRÓĆ KLUCZ SYMETRYCZNY