ALTER SYMMETRIC KEY (Transact-SQL)

Cambia las propiedades de una clave simétrica.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

ALTER SYMMETRIC KEY Key_name <alter_option>

<alter_option> ::=
   ADD ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
   | 
   DROP ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
<encrypting_mechanism> ::=
   CERTIFICATE certificate_name
   |
   PASSWORD = 'password'
   |
   SYMMETRIC KEY Symmetric_Key_Name
   |
   ASYMMETRIC KEY Asym_Key_Name

Argumentos

  • Key_name
    Es el nombre por el que se conoce la clave simétrica que se va a cambiar en la base de datos.

  • ADD ENCRYPTION BY
    Agrega el cifrado utilizando el método especificado.

  • DROP ENCRYPTION BY
    Quita el cifrado utilizando el método especificado. No es posible quitar todos los cifrados de una clave simétrica.

  • CERTIFICATE Certificate_name
    Especifica el certificado que se utiliza para cifrar la clave simétrica. El certificado debe existir en la base de datos.

  • PASSWORD ='password'
    Especifica la contraseña que se usa para cifrar la clave simétrica. password debe cumplir los requisitos de la directiva de contraseñas de Windows del equipo que ejecuta la instancia de SQL Server.

  • SYMMETRIC KEY Symmetric_Key_Name
    Especifica la clave simétrica que se utiliza para cifrar la clave simétrica que va a cambiarse. La clave simétrica debe existir en la base de datos y debe estar abierta.

  • ASYMMETRIC KEY Asym_Key_Name
    Especifica la clave asimétrica que se utiliza para cifrar la clave simétrica que va a cambiarse. La clave asimétrica debe existir en la base de datos.

Comentarios

Nota de advertenciaAdvertencia

Si se utiliza una contraseña para cifrar una clave simétrica, en lugar de la clave pública de la clave maestra de base de datos, se utiliza el algoritmo de cifrado TRIPLE_DES. Por ello, las claves creadas con un algoritmo de cifrado seguro, como AES, se protegen mediante un algoritmo menos seguro.

Para cambiar el cifrado de la clave simétrica, utilice las frases ADD ENCRYPTION y DROP ENCRYPTION. No es posible dejar una clave completamente sin cifrado. Por ello, la práctica recomendada es agregar la nueva forma de cifrado antes de quitar la antigua forma de cifrado.

Para cambiar el propietario de una clave simétrica, use ALTER AUTHORIZATION.

[!NOTA]

El algoritmo RC4 se admite solo por compatibilidad con versiones anteriores. El material nuevo solo se puede cifrar con RC4 o RC4_128 cuando la base de datos tenga el nivel de compatibilidad 90 o 100. (No se recomienda). Use un algoritmo más reciente como uno de los algoritmos AES en su lugar. En SQL Server 2012 el material cifrado con RC4 o RC4_128 se puede descifrar en cualquier nivel de compatibilidad.

Permisos

Necesita el permiso ALTER en la clave simétrica. Si se agrega el cifrado mediante una clave asimétrica o un certificado, es necesario el permiso VIEW DEFINITION en el certificado o en la clave asimétrica. Si se quita el cifrado mediante una clave asimétrica o un certificado, es necesario el permiso CONTROL en el certificado o en la clave asimétrica.

Ejemplos

En el siguiente ejemplo se cambia el método de cifrado que se utiliza para proteger una clave simétrica. La clave simétrica JanainaKey043 se cifra mediante el certificado Shipping04 al crear la clave. Dado que la clave no puede almacenarse sin cifrado, en este ejemplo el cifrado se agrega mediante contraseña y se quita mediante certificado.

CREATE SYMMETRIC KEY JanainaKey043 WITH ALGORITHM = AES_256 
    ENCRYPTION BY CERTIFICATE Shipping04;
-- Open the key. 
OPEN SYMMETRIC KEY JanainaKey043 DECRYPTION BY CERTIFICATE Shipping04
    WITH PASSWORD = '<enterStrongPasswordHere>'; 
-- First, encrypt the key with a password.
ALTER SYMMETRIC KEY JanainaKey043 
    ADD ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
-- Now remove encryption by the certificate.
ALTER SYMMETRIC KEY JanainaKey043 
    DROP ENCRYPTION BY CERTIFICATE Shipping04;
CLOSE SYMMETRIC KEY JanainaKey043;

Vea también

Referencia

CREATE SYMMETRIC KEY (Transact-SQL)

OPEN SYMMETRIC KEY (Transact-SQL)

CLOSE SYMMETRIC KEY (Transact-SQL)

DROP SYMMETRIC KEY (Transact-SQL)

Conceptos

Jerarquía de cifrado