ALTER CERTIFICATE (Transact-SQL)
Cambia la clave privada que se utiliza para cifrar un certificado o agrega una si no existe. Cambia la disponibilidad de un certificado a Service Broker.
Sintaxis
ALTER CERTIFICATE certificate_name
REMOVE PRIVATE KEY
|
WITH PRIVATE KEY ( <private_key_spec> [ ,... ] )
|
WITH ACTIVE FOR BEGIN_DIALOG = [ ON | OFF ]
<private_key_spec> ::=
FILE = 'path_to_private_key'
|
DECRYPTION BY PASSWORD = 'key_password'
|
ENCRYPTION BY PASSWORD = 'password'
Argumentos
certificate_name
Nombre único por el que se conoce al certificado en la base de datos.FILE ='path_to_private_key'
Especifica la ruta de acceso completa a la clave privada, incluido el nombre de archivo. Este parámetro puede ser una ruta de acceso local o una ruta de acceso UNC a una ubicación de red. Se obtiene acceso a este archivo dentro del contexto de seguridad de la cuenta del servicio SQL Server. Cuando utilice esta opción, asegúrese de que la cuenta de servicio tenga acceso al archivo especificado.DECRYPTION BY PASSWORD ='key_password'
Especifica la contraseña necesaria para descifrar la clave privada.ENCRYPTION BY PASSWORD ='password'
Especifica la contraseña que se usa para cifrar la clave privada del certificado en la base de datos. password debe cumplir los requisitos de la directiva de contraseñas de Windows del equipo que ejecute la instancia de SQL Server. Para obtener más información, vea Directiva de contraseñas.REMOVE PRIVATE KEY
Indica que no debe seguir manteniéndose la clave privada en la base de datos.ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
Hace que el certificado esté disponible para el iniciador de una conversación de diálogo de Service Broker.
Comentarios
La clave privada debe corresponderse con la clave pública especificada por certificate_name.
Puede omitir la cláusula DECRYPTION BY PASSWORD si la contraseña del archivo está protegida mediante una contraseña NULL.
Cuando la clave privada de un certificado que ya existe en la base de datos se importa desde un archivo, esta clave privada se protegerá automáticamente mediante la clave maestra de la base de datos. Para proteger la clave privada con una contraseña, utilice la frase ENCRYPTION BY PASSWORD.
La opción REMOVE PRIVATE KEY eliminará de la base de datos la clave privada del certificado. Puede hacer esto cuando el certificado se utilice para comprobar firmas o en escenarios de Service Broker que no necesiten una clave privada. No elimine la clave privada de un certificado que proteja una clave simétrica.
No es necesario especificar una contraseña de descifrado cuando la clave privada se ha cifrado mediante la clave maestra de la base de datos.
Importante |
---|
Haga siempre una copia de archivo de una clave privada antes de quitarla de una base de datos. Para obtener más información, vea BACKUP CERTIFICATE (Transact-SQL). |
Permisos
Requiere el permiso ALTER en el certificado.
Ejemplos
A. Cambiar la contraseña de un certificado
ALTER CERTIFICATE Shipping04
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'pGF$5DGvbd2439587y',
ENCRYPTION BY PASSWORD = '4-329578thlkajdshglXCSgf');
GO
B. Cambiar la contraseña utilizada para cifrar una clave privada
ALTER CERTIFICATE Shipping11
WITH PRIVATE KEY (ENCRYPTION BY PASSWORD = '34958tosdgfkh##38',
DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%');
GO
C. Importar una clave privada para un certificado que ya existe en la base de datos
ALTER CERTIFICATE Shipping13
WITH PRIVATE KEY (FILE = 'c:\\importedkeys\Shipping13',
DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');
GO
D. Cambiar la protección de una clave privada, desde una contraseña a la clave maestra de la base de datos
ALTER CERTIFICATE Shipping15
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');
GO