Compartilhar via


OPEN SYMMETRIC KEY (Transact-SQL)

Descriptografa uma chave simétrica e a disponibiliza para uso.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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
    É o nome da chave simétrica a ser aberta.

  • CERTIFICATE certificate_name
    É o nome de um certificado cuja chave particular será usada para descriptografar a chave simétrica.

  • ASYMMETRIC KEY asym_key_name
    É o nome de uma chave assimétrica cuja chave particular será usada para descriptografar a chave simétrica.

  • WITH PASSWORD ='password'
    É a senha que foi usada para criptografar a chave particular do certificado ou chave assimétrica.

  • SYMMETRIC KEY decrypting_key_name
    É o nome de uma chave simétrica que será usada para descriptografar a chave simétrica sendo aberta.

  • PASSWORD ='password'
    É a senha que foi usada para proteger a chave simétrica.

Comentários

As chaves simétricas abertas estão associadas à sessão que não está no contexto de segurança. Uma chave aberta continuará disponível até ser explicitamente fechada ou a sessão ser encerrada. Se você abrir uma chave simétrica e alterar o contexto, ela permanecerá aberta e estará disponível no contexto representado. As informações sobre chaves simétricas abertas podem ser visualizadas na exibição de catálogo sys.openkeys (Transact-SQL).

Se a chave simétrica tiver sido criptografada com outra chave, essa chave deverá ser aberta primeiro.

Se a chave simétrica já estiver aberta, a consulta será um NO_OP.

Se a senha, chave ou certificado fornecido para descriptografar a chave simétrica estiver incorreto, a consulta falhará.

As chaves simétricas criadas de provedores de criptografia não podem ser abertas. As operações de criptografia e descriptografia que usam esse tipo de chave simétrica dão certo sem a instrução OPEN porque o provedor de criptografia está abrindo e fechando a chave.

Permissões

O chamador deve ter alguma permissão na chave, e a permissão VIEW DEFINITION não deve ter sido negada a ele na chave. Os requisitos adicionais variam, dependendo do mecanismo de descriptografia:

  • DECRYPTION BY CERTIFICATE: permissão CONTROL no certificado e conhecimento da senha que criptografa sua chave particular.

  • DECRYPTION BY ASYMMETRIC KEY: permissão CONTROL na chave assimétrica e conhecimento da senha que criptografa sua chave particular.

  • DECRYPTION BY PASSWORD: conhecimento de uma das senhas usadas para criptografar a chave simétrica.

Exemplos

A. Abrindo uma chave simétrica usando um certificado

O exemplo seguinte abre a chave simétrica SymKeyMarketing3 e a descriptografa usando a chave particular de certificado MarketingCert9.

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

B. Abrindo uma chave simétrica usando outra chave simétrica

O exemplo seguinte abre a chave simétrica MarketingKey11 e a descriptografa usando a chave 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