Partilhar via


DECRYPTBYCERT (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Esta função utiliza a chave privada de um certificado para desencriptar dados encriptados.

Transact-SQL convenções de sintaxe

Sintaxe

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

Arguments

certificate_ID
O ID de um certificado na base de dados. certificate_ID tem um tipo de dado int .

texto cifrado
A cadeia de dados encriptada com a chave pública do certificado.

@ciphertext
Uma variável do tipo varbinary contendo dados encriptados 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 contendo a palavra-passe usada para encriptar a chave privada do certificado. @cert_password deve ter um formato de dados Unicode.

Tipos de devolução

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

Observações

Esta função desencripta dados com a chave privada de um certificado. Transformações criptográficas que utilizam chaves assimétricas consomem recursos significativos. Por isso, sugerimos que os programadores evitem o uso de ENCRYPTBYCERT e DECRYPTBYCERT para encriptação/desencriptação rotineira de dados de utilizador.

Permissions

DECRYPTBYCERT requer permissão CONTROL no certificado.

Examples

Este exemplo seleciona linhas de [AdventureWorks2022].[ProtectedData04] dados marcados como originalmente encriptados por certificado JanainaCert02. O exemplo primeiro desencripta a chave privada do certificado JanainaCert02 com a palavra-passe do certificado pGFD4bb925DGvbd2439587y. Depois, o exemplo desencripta o texto cifrado com esta chave privada. O exemplo converte os dados desencriptados de varbinary para nvarchar.

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

Ver também

ENCRYPTBYCERT (Transact-SQL)
CRIAR CERTIFICADO (Transact-SQL)
CERTIFICADO ALTER (Transact-SQL)
CERTIFICADO DE DESISTÊNCIA (Transact-SQL)
CERTIFICADO DE CÓPIA DE SEGURANÇA (Transact-SQL)
Hierarquia de criptografia