CREATE MASTER KEY (Transact-SQL)

Se aplica a: síSQL Server (todas las versiones admitidas) SíAzure SQL Database SíInstancia administrada de Azure SQL síAzure Synapse Analytics síAlmacenamiento de datos paralelos

Crea una clave maestra de base de datos en la base de datos.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQL

Sintaxis

CREATE MASTER KEY [ ENCRYPTION BY PASSWORD ='password' ]
[ ; ]

Nota

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

Argumentos

PASSWORD ="contraseña" es la contraseña que se usa para cifrar la clave maestra de la base de datos. password debe cumplir los requisitos de la directiva de contraseñas de Windows del equipo que ejecuta la instancia de SQL Server. password es opcional en SQL Database y Azure Synapse Analytics.

Observaciones

La clave maestra de base de datos es una clave simétrica que se usa para proteger las claves privadas de certificados y las claves asimétricas presentes en la base de datos. Al crearla, la clave maestra se cifra mediante el algoritmo AES_256 y una contraseña proporcionada por el usuario. En SQL Server 2008 y SQL Server 2008 R2, se utiliza el algoritmo triple DES. Para permitir el descifrado automático de la clave maestra, se cifra una copia de la clave mediante la clave maestra de servicio y se almacena en la base de datos y en la base de datos maestra. Por lo general, la copia almacenada en la base de datos maestra se actualiza automáticamente al cambiar la clave maestra. Es posible cambiar esta opción predeterminada usando la opción DROP ENCRYPTION BY SERVICE MASTER KEY de ALTER MASTER KEY. Para abrir una clave maestra que no se haya cifrado con la clave maestra de servicio, debe usarse la instrucción OPEN MASTER KEY y una contraseña.

La columna is_master_key_encrypted_by_server de la vista de catálogo sys.databases de la base de datos maestra indica si la clave maestra de la base de datos se ha cifrado con la clave maestra de servicio.

Puede ver la información acerca de la clave maestra de base de datos en la vista de catálogo sys.symmetric_keys.

Para el Almacenamiento de datos paralelos de SQL Server, la clave maestra normalmente está protegida por la clave maestra de servicio y al menos una contraseña. En caso de que la base de datos se mueva físicamente a otro servidor (trasvase de registros, restauración de la copia de seguridad, etc.), contendrá una copia de la clave maestra cifrada por la clave maestra de servicio del servidor original (a menos que el cifrado se haya quitado explícitamente mediante ALTER MASTER KEY DDL) y una copia de ella misma cifrada por cada contraseña especificada durante operaciones CREATE MASTER KEY o ALTER MASTER KEY DDL posteriores. Después de haber movido la base de datos, para poder recuperar la clave maestra y todos los datos cifrados con ella como la raíz de la jerarquía de claves, el usuario tendrá que utilizar la instrucción OPEN MASTER KEY con una de las contraseñas usadas para proteger la clave maestra, o bien restaurar una copia de seguridad de la clave maestra o una copia de seguridad de la clave maestra de servicio original en el servidor nuevo.

Para SQL Database y Azure Synapse Analytics, la protección por contraseña no se considera un mecanismo de seguridad para evitar la pérdida de datos en situaciones en las que se haya movido la base de datos de un servidor a otro, ya que la protección mediante clave maestra de servicio en la clave maestra está administrada por la plataforma Microsoft Azure. Por tanto, la contraseña de clave maestra es opcional en SQL Database y Azure Synapse Analytics.

Importante

Debe realizar una copia de seguridad de la clave maestra mediante BACKUP MASTER KEY y almacenar la copia de seguridad en un lugar seguro y fuera de las instalaciones.

La clave maestra de servicio y las claves maestras de base de datos se protegen mediante el algoritmo AES-256.

Permisos

Necesita el permiso CONTROL en la base de datos.

Ejemplos

Use el ejemplo siguiente para crear una clave maestra de base de datos en la base de datos master. La clave se cifra con la contraseña 23987hxJ#KL95234nl0zBe.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe';
GO

Consulte también