ALTER MASTER KEY (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Cambia las propiedades de la clave maestra de una base de datos.
Convenciones de sintaxis de Transact-SQL
Sintaxis
-- Syntax for SQL Server
ALTER MASTER KEY <alter_option>
<alter_option> ::=
<regenerate_option> | <encryption_option>
<regenerate_option> ::=
[ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'
<encryption_option> ::=
ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
|
DROP ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
-- Syntax for Azure SQL Database
-- Note: DROP ENCRYPTION BY SERVICE MASTER KEY is not supported on Azure SQL Database.
ALTER MASTER KEY <alter_option>
<alter_option> ::=
<regenerate_option> | <encryption_option>
<regenerate_option> ::=
[ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'
<encryption_option> ::=
ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
|
DROP ENCRYPTION BY { PASSWORD = 'password' }
-- Syntax for Azure Synapse Analytics and Analytics Platform System
ALTER MASTER KEY <alter_option>
<alter_option> ::=
<regenerate_option> | <encryption_option>
<regenerate_option> ::=
[ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD ='password'
<encryption_option> ::=
ADD ENCRYPTION BY SERVICE MASTER KEY
|
DROP ENCRYPTION BY SERVICE MASTER KEY
Argumentos
PASSWORD ='password' Especifica una contraseña con la que se va a cifrar o descifrar 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.
Observaciones
La opción REGENERATE vuelve a crear la clave maestra de la base de datos y todas las claves que ésta protege. Las claves se descifran primero con la antigua clave maestra y, a continuación, se cifran con la nueva clave maestra. Puesto que esta operación hace un uso intensivo de recursos, debe programarse durante un periodo de baja demanda, a menos que la clave maestra se encuentre en peligro.
SQL Server 2012 (11.x) usa el algoritmo de cifrado AES para proteger la clave maestra de servicio (SMK) y la clave maestra de la base de datos (DMK). AES es un algoritmo de cifrado más reciente que el algoritmo 3DES empleado en versiones anteriores. Después de actualizar una instancia de Motor de base de datos a SQL Server 2012 (11.x) , se deben volver a generar las claves SMK y DMK para actualizar las claves maestras al algoritmo AES. Para más información sobre cómo volver a generar la SMK, vea ALTER SERVICE MASTER KEY.
Cuando se usa la opción FORCE, la regeneración de la clave continuará aunque la clave maestra no se encuentre disponible o el servidor no pueda descifrar todas las claves privadas cifradas. Si no puede abrir la clave maestra, use la instrucción RESTORE MASTER KEY para restaurar la clave maestra desde una copia de seguridad. 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.
La opción DROP ENCRYPTION BY SERVICE MASTER KEY quita el cifrado de la clave maestra de la base de datos por parte de la clave maestra de servicio.
ADD ENCRYPTION BY SERVICE MASTER KEY cifra una copia de la clave maestra con la clave maestra de servicio y la almacena en la base de datos actual y en master.
Permisos
Necesita el permiso CONTROL en la base de datos. Si la clave maestra de la base de datos se ha cifrado con una contraseña, es necesario conocer dicha contraseña.
Ejemplos
En el siguiente ejemplo se crea una nueva clave maestra de base de datos para AdventureWorks
y se vuelven a cifrar las claves inferiores en la jerarquía de cifrado.
USE AdventureWorks2022;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'dsjdkflJ435907NnmM#sX003';
GO
Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)
En el siguiente ejemplo se crea una clave maestra de base de datos para AdventureWorksPDW2012
y se vuelven a cifrar las claves inferiores en la jerarquía de cifrado.
USE master;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'dsjdkflJ435907NnmM#sX003';
GO