OPEN SYMMETRIC KEY (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse Analytics

為對稱金鑰解密,讓它能夠使用。

Transact-SQL 語法慣例

注意

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'  

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

引數

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 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)