DECRYPTBYCERT (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Essa função usa a chave privada de um certificado para descriptografar dados criptografados.

Convenções de sintaxe de Transact-SQL

Sintaxe

DecryptByCert ( certificate_ID , { 'ciphertext' | @ciphertext }   
    [ , { 'cert_password' | @cert_password } ] )  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

certificate_ID
A ID de um certificado no banco de dados. certificate_ID tem um tipo de dados int.

ciphertext
A cadeia de caracteres de dados criptografados com a chave pública do certificado.

@ciphertext
Uma variável do tipo varbinary que contém dados criptografados com o certificado.

cert_password
A senha usada para criptografar a chave privada do certificado. cert_password deve ter um formato de dados Unicode.

@cert_password
Uma variável do tipo nchar ou nvarchar que contém a senha usada para criptografar a chave privada do certificado. @cert_password deve ter um formato de dados Unicode.

Tipos de retorno

varbinary, com um tamanho máximo de 8.000 bytes.

Comentários

Essa função descriptografa dados com a chave privada de um certificado. As transformações criptográficas que usam chaves assimétricas consomem recursos significativos. Portanto, sugerimos que os desenvolvedores evitem o uso de ENCRYPTBYCERT e de DECRYPTBYCERT para criptografia/descriptografia de dados do usuário de rotina.

Permissões

DECRYPTBYCERT requer a permissão CONTROL no certificado.

Exemplos

Este exemplo seleciona linhas de [AdventureWorks2022].[ProtectedData04] marcadas como dados originalmente criptografados pelo certificado JanainaCert02. Primeiro o exemplo descriptografa a chave privada do certificado JanainaCert02 com a senha do certificado pGFD4bb925DGvbd2439587y. Em seguida, o exemplo descriptografa o texto cifrado com essa chave privada. O exemplo converte os dados descriptografados de varbinary em nvarchar.

SELECT CONVERT(NVARCHAR(max), DecryptByCert(Cert_Id('JanainaCert02'),  
    ProtectedData, N'pGFD4bb925DGvbd2439587y'))  
FROM [AdventureWorks2022].[ProtectedData04]   
WHERE Description   
    = N'data encrypted by certificate '' JanainaCert02''';  
GO  

Consulte Também

ENCRYPTBYCERT (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)
Hierarquia de criptografia