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。
如果為對稱金鑰解密的密碼、憑證或金鑰不正確,查詢就會失敗。
無法開啟從加密提供者建立的對稱金鑰。由於加密提供者正在開啟與關閉金鑰,使用此種對稱金鑰在沒有 OPEN 陳述式的情況下進行加密和解密作業會成功。
權限
呼叫端必須具有金鑰的某種權限,而且絕不能被拒絕金鑰的 VIEW DEFINITION 權限。其他需求則隨解密機制而不同:
DECRYPTION BY CERTIFICATE:憑證的 CONTROL 權限,以及為其私密金鑰加密所用密碼的知識。
DECRYPTION BY ASYMMETRIC KEY:非對稱金鑰的 CONTROL 權限,以及為其私密金鑰加密所用密碼的知識。
DECRYPTION BY PASSWORD:為對稱金鑰加密所用其中一個密碼的知識。
範例
A. 利用憑證來開啟對稱金鑰
下列範例會開啟對稱金鑰 SymKeyMarketing3,並利用憑證 MarketingCert9 的私密金鑰為它解密。
USE AdventureWorks2008R2;
OPEN SYMMETRIC KEY SymKeyMarketing3
DECRYPTION BY CERTIFICATE MarketingCert9;
GO
B. 利用另一個對稱金鑰來開啟對稱金鑰
下列範例會開啟對稱金鑰 MarketingKey11,並利用對稱金鑰 HarnpadoungsatayaSE3 為它解密。
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