OPEN SYMMETRIC KEY (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric SQL Database

対称キーの暗号化を解除し、対称キーを使用可能にします。

Transact-SQL 構文表記規則

Note

この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。

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'  

Arguments

Key_name
開く対称キーの名前を指定します。

CERTIFICATE certificate_name
対称キーの暗号化解除に使用する秘密キーを備えた、証明書の名前を指定します。

ASYMMETRIC KEY asym_key_name
対称キーの暗号化解除に使用する秘密キーを備えた、非対称キーの名前を指定します。

パスワード='password'
証明書の秘密キーまたは非対称キーの暗号化に使用されているパスワードを指定します。

SYMMETRIC KEY decrypting_key_name
開く対称キーの暗号化解除に使用する対称キーの名前を指定します。

PASSWORD ='password'
対称キーの保護に使用されているパスワードを指定します。

Remarks

開いている対称キーは、セキュリティ コンテキストではなくセッションにバインドされており、 明示的に閉じられるか、セッションが終了するまで引き続き使用できます。 対称キーを開いてからコンテキストを切り替えた場合、キーは開かれたままになり、権限を借用したコンテキストでも使用できます。 複数のキーを一度に開くことができます。 開いている対称キーに関する情報は、sys.openkeys (Transact-SQL) カタログ ビューで確認できます。

対称キーが別のキーで暗号化された場合は、そのキーを最初に開く必要があります。

対称キーが既に開いている場合、クエリは NO_OP となります。

対称キーの暗号化解除に指定したパスワード、証明書、またはキーが正しくない場合、クエリは失敗します。

暗号化プロバイダーから作成された対称キーは、開くことはできません。 この種の対称キーを使用する暗号化および暗号化解除の操作は、OPEN ステートメントを使わなくても成功します。これは、暗号化プロバイダーがキーを開いたり閉じたりするためです。

Permissions

発信者はキーに対して何らかの許可を得ており、キーに対してDEFINITION権限 VIEW 拒否されていなければなりません。 また、暗号化解除メカニズムに応じた追加要件があります。

  • CERTIFICATEによる復号:証明書に対するCONTROL権限と、その秘密鍵を暗号化するパスワードの知識。

  • ASYMMETRIC KEYによる復号:非対称鍵のCONTROL権限と、その秘密鍵を暗号化するパスワードの知識。

  • DECRYPTION BY PASSWORD の場合は、対称キーの暗号化に使用されたパスワードの 1 つについての情報が必要です。

Examples

A. 証明書を使用して対称キーを開く

次の例では、対称キー SymKeyMarketing3 を開き、証明書 MarketingCert9 の秘密キーを使って暗号化を解除します。

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

B. 別の対称キーを使用して対称キーを開く

次の例では、対称キー MarketingKey11 を開き、対称キー HarnpadoungsatayaSE3 を使って暗号化を解除します。

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   

こちらもご覧ください

CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL)
CLOSE SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
暗号化階層
拡張キー管理 (EKM)