OPEN SYMMETRIC KEY (Transact-SQL)
対称キーの暗号化を解除し、対称キーを使用可能にします。
構文
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'
引数
- Key_name
開く対称キーの名前を指定します。
- CERTIFICATE certificate_name
対称キーの暗号化解除に使用する秘密キーを備えた、証明書の名前を指定します。
- ASYMMETRIC KEY asym_key_name
対称キーの暗号化解除に使用する秘密キーを備えた、非対称キーの名前を指定します。
- WITH PASSWORD ='password'
証明書の秘密キーまたは非対称キーの暗号化に使用されているパスワードを指定します。
- SYMMETRIC KEY decrypting_key_name
開く対称キーの暗号化解除に使用する対称キーの名前を指定します。
- PASSWORD ='password'
対称キーの保護に使用されているパスワードを指定します。
解説
開いている対称キーは、セキュリティ コンテキストではなくセッションにバインドされており、明示的に閉じられるか、セッションが終了するまで引き続き使用できます。対称キーを開いてからコンテキストを切り替えた場合、キーは開かれたままになり、権限を借用したコンテキストでも使用できます。開いている対称キーに関する情報は、sys.openkeys (Transact-SQL) カタログ ビューで確認できます。
対称キーが別のキーで暗号化された場合は、そのキーを最初に開く必要があります。
対称キーが既に開いている場合、クエリは NO_OP となります。
対称キーの暗号化解除に指定したパスワード、証明書、またはキーが正しくない場合、クエリは失敗します。
権限
呼び出し元にはキーに対する権限が必要です。キーに対する VIEW 権限が拒否されていないことも必要になります。また、暗号化解除メカニズムに応じた追加要件があります。
- DECRYPTION BY CERTIFICATE の場合は、証明書に対する CONTROL 権限と、秘密キーを暗号化したパスワードの情報が必要です。
- DECRYPTION BY ASYMMETRIC KEY の場合は、非対称キーに対する CONTROL 権限と、秘密キーを暗号化したパスワードの情報が必要です。
- DECRYPTION BY PASSWORD の場合は、対称キーの暗号化に使用されたパスワードの 1 つについての情報が必要です。
例
A. 証明書を使用して対称キーを開く
次の例では、対称キー SymKeyMarketing3
を開き、証明書 MarketingCert9
の秘密キーを使って暗号化を解除します。
USE AdventureWorks;
OPEN SYMMETRIC KEY SymKeyMarketing3
DECRYPTION BY CERTIFICATE MarketingCert9;
GO
B. 別の対称キーを使用して対称キーを開く
次の例では、対称キー MarketingKey11
を開き、対称キー HarnpadoungsatayaSE3
を使って暗号化を解除します。
USE AdventureWorks;
-- 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)