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