Бөлісу құралы:


RESTORE MASTER KEY (Transact-SQL)

Область применения: SQL Server

Импортирует главный ключ базы данных из файла резервной копии.

Внимание

SQL Server 2022 (16.x) предоставляет поддержку резервного копирования и восстановления главного ключа базы данных в хранилище BLOB-объектов Azure и из нее. Синтаксис URL доступен только для SQL Server 2022 (16.x) и более поздних версий.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

FILE ='path_to_file'
Указывает полный путь с именем файла к главному ключу хранимой процедуры. path_to_file может быть локальным путем или UNC-путем к расположению в сети.

URL ='URL-адрес хранилища BLOB-объектов Azure'
Область применения: SQL Server 2022 (16.x) и более поздних версий
URL-адрес хранилища BLOB-объектов Azure в формате, аналогичном https://<storage_account_name>.blob.core.windows.net/<storage_container_name>/<backup_file_name>.bak.

DECRYPTION BY PASSWORD ='password'
Указывает пароль для дешифрования главного ключа базы данных, импортируемого из файла.

ENCRYPTION BY PASSWORD ='password'
Указывает пароль для шифрования главного ключа базы данных после его загрузки в базу данных.

FORCE
Указывает на то, что процесс RESTORE должен продолжаться, даже если текущий главный ключ базы данных не открыт или если SQL Server не может расшифровать некоторые зашифрованные им закрытые ключи.

Замечания

При восстановлении главного ключа SQL Server расшифровывает все ключи, зашифрованные с помощью активного главного ключа, а затем шифрует эти ключи с восстановленным главным ключом. Данную ресурсоемкую операцию следует планировать на то время, когда количество обращений к серверу минимальное. Если текущий главный ключ базы данных не открыт или не может быть открыт либо если какой-либо из зашифрованных им ключей не может быть расшифрован, операция восстановления завершится сбоем.

Аргумент FORCE следует использовать только в случае, если главный ключ получить невозможно или при неудачной попытке расшифровки. Данные, зашифрованные только недоступным ключом, будут потеряны.

Если главный ключ был зашифрован главным сервисным ключом, восстановленный главный ключ также будет зашифрован главным сервисным ключом.

Если в текущей базе данных нет главного ключа, RESTORE MASTER KEY создает главный ключ. Новый главный ключ не будет автоматически шифроваться с использованием главного ключа службы.

Если вы используете SQL Server 2022 (16.x) и более поздних версий и хотите восстановить главный ключ базы данных из хранилища BLOB-объектов Azure, применяются следующие предварительные требования:

  1. Иметь учетную запись хранения Azure.

  2. Создание хранимой политики доступа и хранилища с общим доступом.

  3. Создать учетные данные SQL Server с помощью подписанного URL-адреса.

    Дополнительные сведения см. в статье Учебник. Использование хранилища BLOB-объектов Azure с SQL Server.

Разрешения

Требует разрешения CONTROL для базы данных.

Примеры

В следующем примере показано восстановление главного ключа базы данных для базы данных AdventureWorks2022 из файла.

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

В следующем примере показано восстановление главного ключа базы данных для базы данных AdventureWorks2022 из хранилища BLOB-объектов Azure.

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  

См. также

CREATE MASTER KEY (Transact-SQL)
ALTER MASTER KEY (Transact-SQL)
Иерархия средств шифрования
RESTORE SYMMETRIC KEY