OPEN SYMMETRIC KEY (Transact-SQL)

Entschlüsselt einen symmetrischen Schlüssel und stellt ihn zur Verwendung zur Verfügung.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

OPEN SYMMETRIC KEY Key_name DECRYPTION BY <decryption_mechanism>

<decryption_mechanism> ::=
    CERTIFICATE certificate_name [ WITH PASSWORD = 'password' ]
    |
    ASYMMETRIC KEY asym_key_name [ WITH PASSWORD = 'password' ]
    |
    SYMMETRIC KEY decrypting_Key_name
    |
    PASSWORD = 'decryption_password'

Argumente

  • Key_name
    Der Name des zu öffnenden symmetrischen Schlüssels.

  • CERTIFICATE certificate_name
    Der Name eines Zertifikats, mit dessen privatem Schlüssel der symmetrische Schlüssel entschlüsselt wird.

  • ASYMMETRIC KEY asym_key_name
    Der Name eines asymmetrischen Schlüssels, mit dessen privatem Schlüssel der symmetrische Schlüssel entschlüsselt wird.

  • WITH PASSWORD = 'password'
    Das Kennwort, mit dem der private Schlüssel des Zertifikats oder des asymmetrischen Schlüssels verschlüsselt wurde.

  • SYMMETRIC KEY decrypting_key_name
    Der Name eines symmetrischen Schlüssels, mit dem der symmetrische Schlüssel, der geöffnet wird, entschlüsselt wird.

  • PASSWORD = 'password'
    Das Kennwort, mit dem der symmetrische Schlüssel geschützt wurde.

Hinweise

Geöffnete symmetrische Schlüssel werden an die Sitzung gebunden und nicht an den Sicherheitskontext. Ein geöffneter Schlüssel bleibt verfügbar, bis er entweder explizit geschlossen wird oder bis die Sitzung beendet wird. Wenn Sie einen symmetrischen Schlüssel öffnen und dann den Kontext wechseln, bleibt der Schlüssel geöffnet und in dem durch Identitätswechsel übernommenen Kontext verfügbar. Informationen zu offenen symmetrischen Schlüsseln werden in der sys.openkeys (Transact-SQL)-Katalogsicht angezeigt.

Falls der symmetrische Schlüssel mit einem anderen Schlüssel verschlüsselt wurde, muss zuerst dieser Schlüssel geöffnet werden.

Falls der symmetrische Schlüssel bereits geöffnet ist, ist die Abfrage NO_OP.

Falls das falsche Kennwort, das falsche Zertifikat oder der falsche Schlüssel zum Entschlüsseln des symmetrischen Schlüssels bereitgestellt wurde, erzeugt die Abfrage einen Fehler.

Symmetrische Schlüssel, die von Kryptografieanbietern erstellt wurden, können nicht geöffnet werden. Verschlüsselungs- und Entschlüsselungsverfahren, die diese Art von symmetrischem Schlüssel verwenden, können ohne die OPEN-Anweisung erfolgreich verwendet werden, da der Kryptografieanbieter den Schlüssel öffnet und schließt.

Berechtigungen

Der Aufrufer benötigt bestimmte Berechtigungen für den Schlüssel, und die VIEW DEFINITION-Berechtigung für den Schlüssel darf ihm nicht verweigert worden sein. Zusätzliche Anforderungen hängen vom Entschlüsselungsmechanismus ab:

  • DECRYPTION BY CERTIFICATE: CONTROL-Berechtigung für das Zertifikat und Kenntnis des Kennworts, mit dem der private Schlüssel verschlüsselt wird.

  • DECRYPTION BY ASYMMETRIC KEY: CONTROL-Berechtigung für den asymmetrischen Schlüssel und Kenntnis des Kennworts, mit dem der private Schlüssel verschlüsselt wird.

  • DECRYPTION BY PASSWORD: Kenntnis eines der Kennwörter, mit denen der symmetrische Schlüssel verschlüsselt wird.

Beispiele

A. Öffnen eines symmetrischen Schlüssels mithilfe eines Zertifikats

Im folgenden Beispiel wird der symmetrische Schlüssel SymKeyMarketing3 geöffnet und mit dem privaten Schlüssel des MarketingCert9-Zertifikats entschlüsselt.

USE AdventureWorks2008R2;
OPEN SYMMETRIC KEY SymKeyMarketing3 
    DECRYPTION BY CERTIFICATE MarketingCert9;
GO

B. Öffnen eines symmetrischen Schlüssels mithilfe eines anderen symmetrischen Schlüssels

Im folgenden Beispiel wird der symmetrische Schlüssel MarketingKey11 geöffnet und mit dem symmetrischen Schlüssel HarnpadoungsatayaSE3 entschlüsselt.

USE AdventureWorks2008R2;
-- First open the symmetric key that you want for decryption.
OPEN SYMMETRIC KEY HarnpadoungsatayaSE3 
    DECRYPTION BY CERTIFICATE sariyaCert01;
-- Use the key that is already open to decrypt MarketingKey11.
OPEN SYMMETRIC KEY MarketingKey11 
    DECRYPTION BY SYMMETRIC KEY HarnpadoungsatayaSE3;
GO