Freigeben über


ENCRYPTBYCERT (Transact-SQL)

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

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • certificate_ID
    Die ID eines Zertifikats in der Datenbank. int.

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

  • @cleartext
    Eine Variable vom Typ nvarchar, char, varchar, binary, varbinary oder nchar mit Daten, die mit dem öffentlichen Schlüssel des Zertifikats verschlüsselt werden.

Rückgabetypen

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

Hinweise

Diese Funktion verschlüsselt Daten mit dem öffentlichen Schlüssel eines Zertifikats. Der verschlüsselte Text kann nur mit dem entsprechenden privaten Schlüssel entschlüsselt werden. Solche asymmetrischen Transformationen sind im Vergleich zum Verschlüsseln und Entschlüsseln mit einem symmetrischen Schlüssel sehr aufwändig. Von der asymmetrischen Verschlüsselung wird daher abgeraten, wenn Sie große Datasets, wie z. B. Benutzerdaten in Tabellen, 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 [AdventureWorks2008R2].[ProtectedData04] 
    values( N'data encrypted by certificate ''Shipping04''',
    EncryptByCert(Cert_ID('JanainaCert02'), @cleartext) );
GO