Freigeben über


OPEN SYMMETRIC KEY (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics SQL-Datenbank in Microsoft Fabric

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

Transact-SQL-Syntaxkonventionen

Hinweis

Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.

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 ist weiterhin verfügbar, bis er entweder explizit geschlossen oder 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. Mehrere Schlüssel können gleichzeitig geöffnet sein. Informationen zu offenen symmetrischen Schlüsseln werden in der Katalogsicht sys.openkeys (Transact-SQL) 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 AdventureWorks2022;  
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 AdventureWorks2022;  
-- 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   

Siehe auch

CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL)
CLOSE SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
Verschlüsselungshierarchie
Erweiterbare Schlüsselverwaltung (Extensible Key Management, EKM)