DECRYPTBYCERT (Transact-SQL)

Entschlüsselt Daten mithilfe des privaten Schlüssels eines Zertifikats.

Themenlink (Symbol)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 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 [AdventureWorks].[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 [AdventureWorks].[ProtectedData04] 
WHERE Description 
    = N'data encrypted by certificate '' JanainaCert02''';
GO