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.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

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.

Notas

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.

Nota importanteImportante

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