DECRYPTBYCERT (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure 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 } ] )
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