OPEN SYMMETRIC KEY (Transact-SQL)OPEN SYMMETRIC KEY (Transact-SQL)

Aplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions) SimBanco de Dados SQL do AzureAzure SQL DatabaseYesBanco de Dados SQL do AzureAzure SQL Database simAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse AnalyticsAplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions) SimBanco de Dados SQL do AzureAzure SQL DatabaseYesBanco de Dados SQL do AzureAzure SQL Database simAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics

Descriptografa uma chave simétrica e a disponibiliza para uso.Decrypts a symmetric key and makes it available for use.

Ícone de link do tópico Convenções da sintaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

注意

Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.This syntax is not supported by serverless SQL pool in Azure Synapse Analytics.

SintaxeSyntax

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'  

注意

Para ver a sintaxe do Transact-SQL para o SQL Server 2014 e versões anteriores, confira a Documentação das versões anteriores.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumentosArguments

Key_nameKey_name
É o nome da chave simétrica a ser aberta.Is the name of the symmetric key to be opened.

CERTIFICATE certificate_nameCERTIFICATE certificate_name
É o nome de um certificado cuja chave privada será usada para descriptografar a chave simétrica.Is the name of a certificate whose private key will be used to decrypt the symmetric key.

ASYMMETRIC KEY asym_key_nameASYMMETRIC KEY asym_key_name
É o nome de uma chave assimétrica cuja chave privada será usada para descriptografar a chave simétrica.Is the name of an asymmetric key whose private key will be used to decrypt the symmetric key.

WITH PASSWORD ='password'WITH PASSWORD ='password'
É a senha que foi usada para criptografar a chave privada do certificado ou chave assimétrica.Is the password that was used to encrypt the private key of the certificate or asymmetric key.

SYMMETRIC KEY decrypting_key_nameSYMMETRIC KEY decrypting_key_name
É o nome de uma chave simétrica que será usada para descriptografar a chave simétrica sendo aberta.Is the name of a symmetric key that will be used to decrypt the symmetric key that is being opened.

PASSWORD ='password'PASSWORD ='password'
É a senha que foi usada para proteger a chave simétrica.Is the password that was used to protect the symmetric key.

ComentáriosRemarks

As chaves simétricas abertas estão associadas à sessão que não está no contexto de segurança.Open symmetric keys are bound to the session not to the security context. Uma chave aberta continuará disponível até ser explicitamente fechada ou a sessão ser encerrada.An open key will continue to be available until it is either explicitly closed or the session is terminated. Se você abrir uma chave simétrica e alterar o contexto, ela permanecerá aberta e estará disponível no contexto representado.If you open a symmetric key and then switch context, the key will remain open and be available in the impersonated context. Informações sobre chaves simétricas abertas estão visíveis na exibição do catálogo sys.openkeys (Transact-SQL).Information about open symmetric keys is visible in the sys.openkeys (Transact-SQL) catalog view.

Se a chave simétrica tiver sido criptografada com outra chave, essa chave deverá ser aberta primeiro.If the symmetric key was encrypted with another key, that key must be opened first.

Se a chave simétrica já estiver aberta, a consulta será um NO_OP.If the symmetric key is already open, the query is a NO_OP.

Se a senha, chave ou certificado fornecido para descriptografar a chave simétrica estiver incorreto, a consulta falhará.If the password, certificate, or key supplied to decrypt the symmetric key is incorrect, the query will fail.

As chaves simétricas criadas de provedores de criptografia não podem ser abertas.Symmetric keys created from encryption providers cannot be opened. 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.Encryption and decryption operations using this kind of symmetric key succeed without the OPEN statement because the Encryption Provider is opening and closing the key.

PermissõesPermissions

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.The caller must have some permission on the key and must not have been denied VIEW DEFINITION permission on the key. Os requisitos adicionais variam, dependendo do mecanismo de descriptografia:Additional requirements vary, depending on the decryption mechanism:

  • DECRYPTION BY CERTIFICATE: permissão CONTROL no certificado e conhecimento da senha que criptografa sua chave privada.DECRYPTION BY CERTIFICATE: CONTROL permission on the certificate and knowledge of the password that encrypts its private key.

  • DECRYPTION BY ASYMMETRIC KEY: permissão CONTROL na chave assimétrica e conhecimento da senha que criptografa sua chave privada.DECRYPTION BY ASYMMETRIC KEY: CONTROL permission on the asymmetric key and knowledge of the password that encrypts its private key.

  • DECRYPTION BY PASSWORD: conhecimento de uma das senhas usadas para criptografar a chave simétrica.DECRYPTION BY PASSWORD: knowledge of one of the passwords that is used to encrypt the symmetric key.

ExemplosExamples

a.A. Abrindo uma chave simétrica com o uso de um certificadoOpening a symmetric key by using a certificate

O exemplo seguinte abre a chave simétrica SymKeyMarketing3 e a descriptografa usando a chave privada de certificado MarketingCert9.The following example opens the symmetric key SymKeyMarketing3 and decrypts it by using the private key of certificate MarketingCert9.

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

B.B. Abrindo uma chave simétrica com o uso de outra chave simétricaOpening a symmetric key by using another symmetric key

O exemplo seguinte abre a chave simétrica MarketingKey11 e a descriptografa usando a chave simétrica HarnpadoungsatayaSE3.The following example opens the symmetric key MarketingKey11 and decrypts it by using symmetric key HarnpadoungsatayaSE3.

USE AdventureWorks2012;  
-- 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émSee Also

CREATE SYMMETRIC KEY (Transact-SQL) CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL) ALTER SYMMETRIC KEY (Transact-SQL)
CLOSE SYMMETRIC KEY (Transact-SQL) CLOSE SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL) DROP SYMMETRIC KEY (Transact-SQL)
Hierarquia de criptografia Encryption Hierarchy
Gerenciamento Extensível de Chaves (EKM)Extensible Key Management (EKM)