Share via


DECRYPTBYCERT (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Cette fonction utilise la clé privée d’un certificat pour déchiffrer les données chiffrées.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

certificate_ID
ID d'un certificat de la base de données. certificate_ID a le type de données int.

ciphertext
Chaîne de données chiffrée avec la clé publique du certificat.

@ciphertext
Variable de type varbinary contenant des données chiffrées avec le certificat.

cert_password
Mot de passe utilisé pour chiffrer la clé privée du certificat. cert_password doit avoir un format de données Unicode.

@cert_password
Variable de type nchar ou nvarchar contenant le mot de passe utilisé pour chiffrer la clé privée du certificat. @cert_password doit avoir un format de données Unicode.

Types de retour

varbinary d’une taille maximale de 8 000 octets.

Notes

Cette fonction déchiffre les données à l'aide de la clé privée d'un certificat. Les opérations de chiffrement/déchiffrement qui utilisent des clés asymétriques consomment une grande quantité de ressources. Nous recommandons donc aux développeurs d’éviter d’utiliser ENCRYPTBYCERT et DECRYPTBYCERT pour les opérations de chiffrement/déchiffrement de routine des données utilisateur.

Autorisations

DECRYPTBYCERT nécessite l’autorisation CONTROL sur le certificat.

Exemples

Cet exemple sélectionne des lignes de [AdventureWorks2022].[ProtectedData04] marquées comme données chiffrées à l’origine par le certificat JanainaCert02. L’exemple déchiffre tout d’abord la clé privée du certificat JanainaCert02 avec le mot de passe du certificat pGFD4bb925DGvbd2439587y. L’exemple déchiffre ensuite le texte chiffré avec cette clé privée. L’exemple convertit les données déchiffrées du type varbinary en type nvarchar.

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

Voir aussi

ENCRYPTBYCERT (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)
Hiérarchie de chiffrement