RESTORE MASTER KEY (Transact-SQL)

Aplica-se a:SQL Server

Importa uma chave mestra de banco de dados de um arquivo de backup.

Importante

O SQL Server 2022 (16.x) apresenta suporte para backup e restauração da chave mestra do banco de dados em um armazenamento de blobs do Azure. A sintaxe URL só está disponível para o SQL Server 2022 (16.x) ou posterior.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

FILE ='path_to_file'
Especifica o caminho completo, inclusive o nome do arquivo, para a chave mestra do banco de dados armazenado. path_to_file pode ser um caminho local ou um caminho UNC para um local de rede.

URL ='URL do Armazenamento de Blobs do Azure'
Aplica-se a: SQL Server 2022 (16.x) e versões posteriores
É a URL do Armazenamento de Blobs do Azure, no formato semelhante a https://<storage_account_name>.blob.core.windows.net/<storage_container_name>/<backup_file_name>.bak.

DECRYPTION BY PASSWORD ='password'
Especifica a senha exigida para decifrar a chave mestra de banco de dados que está sendo importada de um arquivo.

ENCRYPTION BY PASSWORD ='password'
Especifica a senha usada para criptografar a chave mestra de banco de dados depois que ela é carregada no banco de dados.

FORCE
Especifica que o processo RESTORE deve continuar, mesmo que a chave mestra do banco de dados atual não seja aberta ou que o SQL Server não possa descriptografar algumas das chaves privadas criptografadas com ela.

Comentários

Quando a chave mestra é restaurada, o SQL Server descriptografa todas as chaves atualmente criptografadas com a chave mestra ativa e criptografa essas chaves com a chave mestra restaurada. Essa operação de uso intensivo de recursos deve ser agendada em um período de baixa demanda. Se a chave mestra do banco de dados atual não estiver aberta ou não puder ser aberta ou se uma das chaves criptografadas por ela não puder ser descriptografada, a operação de restauração falhará.

Use a opção de FORCE somente se a chave mestra for irrecuperável ou se descriptografia falhar. As informações que só são criptografadas por uma chave irrecuperável serão perdidas.

Se a chave mestra foi criptografada pela chave mestra de serviço, a chave mestra restaurada também será criptografada pela chave mestra de serviço.

Se não houver nenhuma chave mestra no banco de dados atual, RESTORE MASTER KEY criará uma chave mestra. A nova chave mestra não será criptografada automaticamente com a chave mestra de serviço.

Se você estiver usando o SQL Server 2022 (16.x) e posterior e quiser restaurar a chave mestra do banco de dados de um armazenamento de blobs do Azure, os seguintes pré-requisitos se aplicarão:

  1. Ter uma conta do Armazenamento do Azure.

  2. Criar uma política de acesso armazenado e um armazenamento de acesso compartilhado.

  3. Criar uma credencial do SQL Server usando uma assinatura de acesso compartilhado.

    Para obter mais informações, confira Tutorial: Usar o Armazenamento de Blobs do Azure com o SQL Server.

Permissões

Exige a permissão CONTROL no banco de dados.

Exemplos

O exemplo a seguir restaura a chave mestra do banco de dados AdventureWorks2022 de um arquivo.

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

O exemplo a seguir restaura a chave mestra do banco de dados AdventureWorks2022 de um Armazenamento de Blobs do 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  

Confira também

CREATE MASTER KEY (Transact-SQL)
ALTER MASTER KEY (Transact-SQL)
Hierarquia de criptografia
RESTORE SYMMETRIC KEY