Compartir a través de


OPEN SYMMETRIC KEY (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Base de datos de Azure SQL en Microsoft Fabric

Descifra una clave simétrica, que queda disponible para su uso.

Convenciones de sintaxis de Transact-SQL

Nota

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

Sintaxis

OPEN SYMMETRIC KEY Key_name DECRYPTION BY <decryption_mechanism>  
  
<decryption_mechanism> ::=  
    CERTIFICATE certificate_name [ WITH PASSWORD = 'password' ]  
    |  
    ASYMMETRIC KEY asym_key_name [ WITH PASSWORD = 'password' ]  
    |  
    SYMMETRIC KEY decrypting_Key_name  
    |  
    PASSWORD = 'decryption_password'  

Argumentos

Key_name
Es el nombre de la clave simétrica que se va a abrir.

CERTIFICATE certificate_name
Es el nombre de un certificado cuya clave privada se usará para descifrar la clave simétrica.

ASYMMETRIC KEY asym_key_name
Es el nombre de una clave asimétrica cuya clave privada se usará para descifrar la clave simétrica.

WITH PASSWORD ='password'
Es la contraseña utilizada para cifrar la clave privada del certificado o clave asimétrica.

SYMMETRIC KEY decrypting_key_name
Es el nombre de una clave simétrica que se usará para descifrar la clave simétrica que se va a abrir.

PASSWORD ='password'
Es la contraseña utilizada para proteger la clave simétrica.

Comentarios

Las claves simétricas abiertas están enlazadas a la sesión, no al contexto de seguridad. Una clave abierta seguirá disponible hasta que se cierre explícitamente o hasta que finalice la sesión. Si se abre una clave simétrica y después se cambia el contexto, la clave permanecerá abierta y estará disponible en el contexto representado. Se pueden abrir varias claves a la vez. Puede consultar la información sobre las claves simétricas abiertas en la vista de catálogo sys.openkeys (Transact-SQL).

Si la clave simétrica se cifró con otra clave, debe abrirse esta clave primero.

Si la clave simétrica ya está abierta, la consulta es NO_OP.

Si la contraseña, la clave o el certificado suministrado para descifrar la clave simétrica es incorrecto, la consulta dará un error.

Las claves simétricas creadas a partir de proveedores de cifrado no pueden abrirse. Las operaciones de cifrado y descifrado mediante este tipo de clave simétrica se realizan correctamente sin la instrucción OPEN porque el proveedor de cifrado está abriendo y cerrando la clave.

Permisos

El autor de la llamada debe tener algún permiso sobre la clave y no debe tener denegado el permiso VIEW DEFINITION sobre la clave. Según el mecanismo de descifrado, se aplican requisitos adicionales:

  • DECRYPTION BY CERTIFICATE: tener el permiso CONTROL sobre el certificado y conocer la contraseña que cifra la clave privada.

  • DECRYPTION BY ASYMMETRIC KEY: tener el permiso CONTROL sobre la clave asimétrica y conocer la contraseña que cifra su clave privada.

  • DECRYPTION BY PASSWORD: conocer una de las contraseñas utilizadas para cifrar la clave simétrica.

Ejemplos

A. Abrir una clave simétrica usando un certificado

En el ejemplo siguiente se abre la clave simétrica SymKeyMarketing3 y se descifra mediante la clave privada del certificado MarketingCert9.

USE AdventureWorks2022;  
OPEN SYMMETRIC KEY SymKeyMarketing3   
    DECRYPTION BY CERTIFICATE MarketingCert9;  
GO  

B. Abrir una clave simétrica usando otra clave simétrica

En el ejemplo siguiente se abre la clave simétrica MarketingKey11 y se descifra mediante la clave simétrica HarnpadoungsatayaSE3.

USE AdventureWorks2022;  
-- First open the symmetric key that you want for decryption.  
OPEN SYMMETRIC KEY HarnpadoungsatayaSE3   
    DECRYPTION BY CERTIFICATE sariyaCert01;  
-- Use the key that is already open to decrypt MarketingKey11.  
OPEN SYMMETRIC KEY MarketingKey11   
    DECRYPTION BY SYMMETRIC KEY HarnpadoungsatayaSE3;  
GO   

Vea también

CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL)
CLOSE SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
Jerarquía de cifrado
Administración extensible de claves (EKM)