Compartilhar via


OPEN SYMMETRIC KEY (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics

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

Convenções de sintaxe de Transact-SQL

Observação

Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.

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 privada será usada para descriptografar a chave simétrica.

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

WITH PASSWORD ='password'
É a senha que foi usada para criptografar a chave privada 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. É possível abrir várias chaves ao mesmo tempo. Informações sobre chaves simétricas abertas estão visíveis na exibição do 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 privada.

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

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

Exemplos

a. Abrindo uma chave simétrica com o uso de um certificado

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

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

B. Abrindo uma chave simétrica com o uso de outra chave simétrica

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

Consulte Também

CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL)
CLOSE SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
Hierarquia de criptografia
EKM (Gerenciamento extensível de chaves)