ENCRYPTBYCERT (Transact-SQL)

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

Verschlüsselt Daten mit dem öffentlichen Schlüssel eines Zertifikats.

Transact-SQL-Syntaxkonventionen

Syntax

EncryptByCert ( certificate_ID , { 'cleartext' | @cleartext } )  

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

certificate_ID
Die ID eines Zertifikats in der Datenbank. int.

Klartext
Eine Zeichenfolge mit Daten, die mit dem Zertifikat verschlüsselt werden.

@cleartext
Eine Variable eines der folgenden Typen, die Daten enthalten, die mit dem öffentlichen Schlüssel des Zertifikats verschlüsselt werden:

  • nvarchar
  • char
  • varchar
  • binary
  • varbinary
  • nchar

Rückgabetypen

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

Bemerkungen

Diese Funktion verschlüsselt Daten mit dem öffentlichen Schlüssel des Zertifikats. Der verschlüsselte Text kann nur mit dem entsprechenden privaten Schlüssel entschlüsselt werden. Diese asymmetrischen Transformationen sind im Vergleich zum Verschlüsseln und Entschlüsseln mit einem symmetrischen Schlüssel kostenintensiv. Von der asymmetrischen Verschlüsselung wird daher abgeraten, wenn Sie große Datasets verwenden.

Beispiele

In diesem Beispiel wird der in @cleartext gespeicherte Nur-Text mit dem Zertifikat mit dem Namen JanainaCert02 verschlüsselt. Die verschlüsselten Daten werden in die ProtectedData04-Tabelle eingefügt.

INSERT INTO [AdventureWorks2022].[ProtectedData04]   
    VALUES ( N'Data encrypted by certificate ''Shipping04''',  
    EncryptByCert(Cert_ID('JanainaCert02'), @cleartext) );  
GO  

Weitere Informationen

DECRYPTBYCERT (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)
Verschlüsselungshierarchie