OPEN SYMMETRIC KEY (Transact-SQL)
Descifra una clave simétrica, que queda disponible para su uso.
Convenciones de sintaxis de Transact-SQL
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.
Notas
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. Puede ver la información acerca de las claves simétricas 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.
Permisos
El autor de la llamada debe tener algún permiso sobre la clave y no debe tener denegado el permiso VIEW sobre la misma. 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 AdventureWorks;
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 AdventureWorks;
-- 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
Referencia
CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL)
CLOSE SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)