RESTORE MASTER KEY (Transact-SQL)

Se aplica a:SQL Server

Importa una clave maestra de base de datos desde un archivo de copia de seguridad.

Importante

SQL Server 2022 (16.x) incluye compatibilidad de copia de seguridad y restauración con la clave maestra de base de datos hacia Azure Blob Storage y desde este. La sintaxis URL solo está disponible para SQL Server 2022 (16.x) y versiones posteriores.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

FILE ='path_to_file'
Especifica la ruta completa, incluido el nombre de archivo, de acceso a la clave maestra de la base de datos almacenada. path_to_file puede ser una ruta de acceso local o una ruta UNC a una ubicación de red.

URL ='Azure Blob storage URL'
Se aplica a: SQL Server 2022 (16.x) y versiones posteriores
Es la dirección URL de Azure Blob Storage, con un formato similar a https://<storage_account_name>.blob.core.windows.net/<storage_container_name>/<backup_file_name>.bak.

DECRYPTION BY PASSWORD ='password'
Especifica la contraseña necesaria para descifrar la clave maestra de base de datos que se va a importar desde un archivo.

ENCRYPTION BY PASSWORD ='password'
Especifica la contraseña que se utiliza para cifrar la clave maestra de base de datos una vez cargada a la base de datos.

FORCE
Especifica que el proceso RESTORE debe continuar, aunque la clave maestra de base de datos actual no se encuentre abierta o SQL Server no pueda descifrar algunas claves privadas cifradas con ella.

Observaciones

Al restaurar la clave maestra, SQL Server descifra todas las claves cifradas con la clave maestra actualmente activa y cifra estas claves con la clave maestra restaurada. Esta operación requiere un uso intensivo de recursos, por lo que debe programarse durante un período de baja demanda. Si la clave maestra de base de datos actual no se encuentra abierta, no puede abrirse o alguna de las claves cifradas con ella no puede descifrarse, la operación de restauración no se puede realizar.

Utilice la opción FORCE únicamente si la clave maestra es irrecuperable o si se producen errores en el descifrado. Se perderá la información cifrada solamente con una clave irrecuperable.

Si se cifró la clave maestra con la clave maestra de servicio, la clave maestra restaurada también se cifrará con la clave maestra de servicio.

Si no hay una clave maestra en la base de datos actual, RESTORE MASTER KEY crea una clave maestra. La nueva clave maestra no se cifrará automáticamente con la clave maestra de servicio.

Si usa SQL Server 2022 (16.x) o una versión posterior y quiere restaurar la clave maestra de base de datos de una instancia de Azure Blob Storage, se aplican los siguientes requisitos previos:

  1. Tener una cuenta de almacenamiento de Azure .

  2. Crear una directiva de acceso almacenada y un almacenamiento de acceso compartido.

  3. Crear una credencial de SQL Server con una firma de acceso compartido.

    Para obtener más información, consulte Tutorial: Uso de Azure Blob Storage con SQL Server.

Permisos

Necesita el permiso CONTROL en la base de datos.

Ejemplos

En el siguiente ejemplo se restaura la clave maestra de base de datos de la base de datos AdventureWorks2022 de un archivo.

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

En el siguiente ejemplo se restaura la clave maestra de base de datos de la base de datos AdventureWorks2022 de una instancia de Azure Blob Storage.

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  

Consulte también

CREATE MASTER KEY (Transact-SQL)
ALTER MASTER KEY (Transact-SQL)
Jerarquía de cifrado
RESTORE SYMMETRIC KEY