Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Datenbank in Microsoft Fabric
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)
ZERTIFIKAT ERSTELLEN (Transact-SQL)
ALTER-ZERTIFIKAT (Transact-SQL)
ABSCHLUSSZERTIFIKAT (Transact-SQL)
SICHERUNGSZERTIFIKAT (Transact-SQL)
Verschlüsselungshierarchie