OPEN SYMMETRIC KEY (Transact-SQL)OPEN SYMMETRIC KEY (Transact-SQL)

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

対称キーの暗号化を解除し、対称キーを使用可能にします。Decrypts a symmetric key and makes it available for use.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文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_nameKey_name
開く対称キーの名前を指定します。Is the name of the symmetric key to be opened.

CERTIFICATE certificate_nameCERTIFICATE certificate_name
対称キーの暗号化解除に使用する秘密キーを備えた、証明書の名前を指定します。Is the name of a certificate whose private key will be used to decrypt the symmetric key.

ASYMMETRIC KEY asym_key_nameASYMMETRIC KEY asym_key_name
対称キーの暗号化解除に使用する秘密キーを備えた、非対称キーの名前を指定します。Is the name of an asymmetric key whose private key will be used to decrypt the symmetric key.

WITH PASSWORD ='password'WITH PASSWORD ='password'
証明書の秘密キーまたは非対称キーの暗号化に使用されているパスワードを指定します。Is the password that was used to encrypt the private key of the certificate or asymmetric key.

SYMMETRIC KEY decrypting_key_nameSYMMETRIC KEY decrypting_key_name
開く対称キーの暗号化解除に使用する対称キーの名前を指定します。Is the name of a symmetric key that will be used to decrypt the symmetric key that is being opened.

PASSWORD ='password'PASSWORD ='password'
対称キーの保護に使用されているパスワードを指定します。Is the password that was used to protect the symmetric key.

RemarksRemarks

開いている対称キーは、セキュリティ コンテキストではなくセッションにバインドされており、Open symmetric keys are bound to the session not to the security context. 明示的に閉じられるか、セッションが終了するまで引き続き使用できます。An open key will continue to be available until it is either explicitly closed or the session is terminated. 対称キーを開いてからコンテキストを切り替えた場合、キーは開かれたままになり、権限を借用したコンテキストでも使用できます。If you open a symmetric key and then switch context, the key will remain open and be available in the impersonated context. 開いている対称キーに関する情報は、sys.openkeys (Transact-SQL) カタログ ビューで確認できます。Information about open symmetric keys is visible in the sys.openkeys (Transact-SQL) catalog view.

対称キーが別のキーで暗号化された場合は、そのキーを最初に開く必要があります。If the symmetric key was encrypted with another key, that key must be opened first.

対称キーが既に開いている場合、クエリは NO_OP となります。If the symmetric key is already open, the query is a NO_OP.

対称キーの暗号化解除に指定したパスワード、証明書、またはキーが正しくない場合、クエリは失敗します。If the password, certificate, or key supplied to decrypt the symmetric key is incorrect, the query will fail.

暗号化プロバイダーから作成された対称キーは、開くことはできません。Symmetric keys created from encryption providers cannot be opened. この種の対称キーを使用する暗号化および暗号化解除の操作は、OPEN ステートメントを使わなくても成功します。これは、暗号化プロバイダーがキーを開いたり閉じたりするためです。Encryption and decryption operations using this kind of symmetric key succeed without the OPEN statement because the Encryption Provider is opening and closing the key.

アクセス許可Permissions

呼び出し元にはキーに対する権限が必要です。キーに対する VIEW DEFINITION 権限が拒否されていないことも必要になります。The caller must have some permission on the key and must not have been denied VIEW DEFINITION permission on the key. また、暗号化解除メカニズムに応じた追加要件があります。Additional requirements vary, depending on the decryption mechanism:

  • DECRYPTION BY CERTIFICATE:証明書に対する CONTROL 権限と、秘密キーを暗号化したパスワードの情報が必要です。DECRYPTION BY CERTIFICATE: CONTROL permission on the certificate and knowledge of the password that encrypts its private key.

  • DECRYPTION BY ASYMMETRIC KEY:非対称キーに対する CONTROL 権限と、秘密キーを暗号化したパスワードの情報が必要です。DECRYPTION BY ASYMMETRIC KEY: CONTROL permission on the asymmetric key and knowledge of the password that encrypts its private key.

  • DECRYPTION BY PASSWORD の場合は、対称キーの暗号化に使用されたパスワードの 1 つについての情報が必要です。DECRYPTION BY PASSWORD: knowledge of one of the passwords that is used to encrypt the symmetric key.

使用例Examples

A.A. 証明書を使用して対称キーを開くOpening a symmetric key by using a certificate

次の例では、対称キー SymKeyMarketing3 を開き、証明書 MarketingCert9 の秘密キーを使って暗号化を解除します。The following example opens the symmetric key SymKeyMarketing3 and decrypts it by using the private key of certificate MarketingCert9.

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

B.B. 別の対称キーを使用して対称キーを開くOpening a symmetric key by using another symmetric key

次の例では、対称キー MarketingKey11 を開き、対称キー HarnpadoungsatayaSE3 を使って暗号化を解除します。The following example opens the symmetric key MarketingKey11 and decrypts it by using symmetric key HarnpadoungsatayaSE3.

USE AdventureWorks2012;  
-- 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   

参照See Also

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