ALTER SYMMETRIC KEY (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Cambia las propiedades de una clave simétrica.

Convenciones de sintaxis de Transact-SQL

Nota

El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.

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  

Nota:

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

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.

Observaciones

Precaución

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 únicamente por razones de 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 (11.x) 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;  

Consulte también

CREATE SYMMETRIC KEY (Transact-SQL)
OPEN SYMMETRIC KEY (Transact-SQL)
CLOSE SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
Jerarquía de cifrado