Freigeben über


DECRYPTBYCERT (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance

Diese Funktion verwendet den privaten Schlüssel eines Zertifikats zum Entschlüsseln verschlüsselter Daten.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

certificate_ID
Die ID eines Zertifikats in der Datenbank. certificate_ID weist den Datentyp int auf.

ciphertext
Die Datenzeichenfolge, die mithilfe des öffentlichen Schlüssels des Zertifikats verschlüsselt wurde.

@ciphertext
Eine Variable vom Typ varbinary, die Daten enthält, die mit dem Zertifikat verschlüsselt wurden.

cert_password
Das Kennwort, das zum Verschlüsseln des privaten Schlüssels des Zertifikats verwendet wurde. cert_password muss das Unicode-Datenformat aufweisen.

@cert_password
Eine Variable vom Typ nchar oder nvarchar, die das Kennwort enthält, mit dem der private Schlüssel des Zertifikats verschlüsselt wurde. @cert_password muss das Unicode-Datenformat aufweisen.

Rückgabetypen

varbinary mit einer maximalen Größe von 8.000 Byte.

Bemerkungen

Diese Funktion entschlüsselt Daten mithilfe des privaten Schlüssels eines Zertifikats. Kryptografische Umwandlungen, die asymmetrische Schlüssel verwenden, nehmen umfangreiche Ressourcen in Anspruch. Deshalb wird empfohlen, dass Entwickler die Verwendung von ENCRYPTBYCERT und DECRYPTBYCERT bei der routinemäßigen Verschlüsselung und Entschlüsselung von Benutzerdaten vermeiden.

Berechtigungen

DECRYPTBYCERT erfordert die CONTROL-Berechtigung für das Zertifikat.

Beispiele

In diesem Beispiel werden Zeilen aus [AdventureWorks2022].[ProtectedData04] ausgewählt, die als Daten markiert sind, die ursprünglich mit dem Zertifikat JanainaCert02 verschlüsselt wurden. Im Beispiel wird zunächst der private Schlüssel des Zertifikats JanainaCert02 mit dem Kennwort des Zertifikats pGFD4bb925DGvbd2439587y entschlüsselt. Dann wird der Chiffretext mit diesem privaten Schlüssel entschlüsselt. Die entschlüsselten Daten werden im Beispiel von varbinary in nvarchar konvertiert.

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

Weitere Informationen

ENCRYPTBYCERT (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)
Verschlüsselungshierarchie