DECRYPTBYCERT (Transact-SQL)
Entschlüsselt Daten mithilfe des privaten Schlüssels eines Zertifikats.
Syntax
DecryptByCert ( certificate_ID , { 'ciphertext' | @ciphertext }
[ , { 'cert_password' | @cert_password } ] )
Argumente
certificate_ID
Die ID eines Zertifikats in der Datenbank. certificate_ID ist vom Datentyp int.ciphertext
Eine Datenzeichenfolge, die mithilfe des öffentlichen Schlüssels des Zertifikats verschlüsselt wurde.@ciphertext
Eine Variable vom Datentyp varbinary, in der die mit dem Zertifikat verschlüsselten Daten enthalten sind.cert_password
Das Kennwort, das zum Verschlüsseln des privaten Schlüssels des Zertifikats verwendet wurde. Muss Unicode sein.@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. Muss Unicode sein.
Rückgabetypen
varbinary mit einer maximalen Größe von 8.000 Bytes.
Hinweise
Diese Funktion entschlüsselt Daten mithilfe des privaten Schlüssels eines Zertifikats. Kryptografische Umwandlungen, die asymmetrische Schlüssel verwenden, nehmen umfangreiche Ressourcen in Anspruch. Daher sind EncryptByCert und DecryptByCert für die Routineverschlüsselung von Benutzerdaten nicht geeignet.
Permissions
Erfordert die CONTROL-Berechtigung für das Zertifikat.
Beispiele
Im folgenden Beispiel werden in [AdventureWorks2008R2].[ProtectedData04] Zeilen ausgewählt, die als data encrypted by certificate JanainaCert02 markiert sind. Im Beispiel wird der verschlüsselte Text mithilfe des privaten Schlüssels des Zertifikats JanainaCert02 entschlüsselt, das zuerst mithilfe des Kennworts pGFD4bb925DGvbd2439587y des Zertifikats entschlüsselt wird. Die entschlüsselten Daten werden von varbinary in nvarchar konvertiert.
SELECT convert(nvarchar(max), DecryptByCert(Cert_Id('JanainaCert02'),
ProtectedData, N'pGFD4bb925DGvbd2439587y'))
FROM [AdventureWorks2008R2].[ProtectedData04]
WHERE Description
= N'data encrypted by certificate '' JanainaCert02''';
GO