DECRYPTBYASYMKEY (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Diese Funktion verwendet einen asymmetrischen Schlüssel zum Entschlüsseln verschlüsselter Daten.

Transact-SQL-Syntaxkonventionen

Syntax

DecryptByAsymKey (Asym_Key_ID , { 'ciphertext' | @ciphertext }   
    [ , 'Asym_Key_Password' ] )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

Asym_Key_ID
Die ID eines asymmetrischen Schlüssels in der Datenbank. Asym_Key_ID weist den Datentyp int auf.

ciphertext
Die Zeichenfolge der Daten, die mit dem asymmetrischen Schlüssel verschlüsselt wurden.

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

Asym_Key_Password
Das Kennwort, mit dem der asymmetrische Schlüssel in der Datenbank verschlüsselt wurde.

Rückgabetypen

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

Bemerkungen

Im Vergleich zur symmetrischen Verschlüsselung/Entschlüsselung ist die Verschlüsselung/Entschlüsselung mit asymmetrischen Schlüsseln kostspielig. Wenn Sie mit großen Datasets arbeiten (z.B. in Tabellen gespeicherte Benutzerdaten), wird empfohlen, dass Entwickler die Verschlüsselung/Entschlüsselung mit asymmetrischen Schlüsseln vermeiden.

Berechtigungen

DECRYPTBYASYMKEY erfordert die CONTROL-Berechtigung für den asymmetrischen Schlüssel.

Beispiele

In diesem Beispiel wird Chiffretext entschlüsselt, der ursprünglich mit dem asymmetrischen Schlüssel JanainaAsymKey02 verschlüsselt wurde. Dieser asymmetrische Schlüssel ist in AdventureWorks2022.ProtectedData04 gespeichert. Im Beispiel wurden die zurückgegebenen Daten mit dem asymmetrischen Schlüssel JanainaAsymKey02 entschlüsselt. Im Beispiel wurde das Kennwort pGFD4bb925DGvbd2439587y verwendet, um diesen asymmetrischen Schlüssel zu entschlüsseln. Im Beispiel wurde der zurückgegebenen Klartext in den Typ nvarchar konvertiert.

SELECT CONVERT(NVARCHAR(max),  
    DecryptByAsymKey( AsymKey_Id('JanainaAsymKey02'),   
    ProtectedData, N'pGFD4bb925DGvbd2439587y' ))   
AS DecryptedData   
FROM [AdventureWorks2022].[Sales].[ProtectedData04]   
WHERE Description = N'encrypted by asym key''JanainaAsymKey02''';  
GO  

Weitere Informationen

ENCRYPTBYASYMKEY (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
Auswählen eines Verschlüsselungsalgorithmus
Verschlüsselungshierarchie