Share via


CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

建立用於以透明方式加密資料庫的加密金鑰。如需有關資料庫透明加密的詳細資訊,請參閱<了解透明資料加密 (TDE)>。

主題連結圖示Transact-SQL 語法慣例

語法

CREATE DATABASE ENCRYPTION KEY
       WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
   ENCRYPTION BY SERVER 
    {
        CERTIFICATE Encryptor_Name |
        ASYMMETRIC KEY Encryptor_Name
    }
[ ; ]

引數

  • WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
    指定用於加密金鑰的加密演算法。

  • ENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
    指定用於加密資料庫加密金鑰之加密程式的名稱。

  • ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name
    指定用於加密資料庫加密金鑰之非對稱金鑰的名稱。

備註

在資料庫可以使用「資料庫透明加密」(Transparent Database Encryption,TDE) 進行加密前,需要資料庫加密金鑰。當資料庫以透明方式進行加密時,會在檔案層級加密整個資料庫,而不需要修改任何特殊的程式碼。用於加密資料庫加密金鑰的憑證或非對稱金鑰必須位於 master 系統資料庫中。

資料庫加密陳述式僅允許用於使用者資料庫。

資料庫加密金鑰無法從資料庫匯出。只有系統、擁有伺服器偵錯權限的使用者,以及可存取加密和解密資料庫加密金鑰之憑證的使用者可以進行匯出。

變更資料庫擁有者 (dbo) 時,不需要重新產生資料庫加密金鑰。

權限

需要資料庫的 CONTROL 權限,以及用於加密資料庫加密金鑰之憑證或非對稱金鑰的 VIEW DEFINITION 權限。

範例

如需使用 TDE 的其他範例,請參閱<了解透明資料加密 (TDE)>和<如何:使用 EKM 啟用 TDE>。

A. 建立資料庫加密金鑰

下列範例會利用 AES_256 演算法建立一個資料庫加密金鑰,並且使用名稱為 MyServerCert 的憑證保護私密金鑰。

USE AdventureWorks
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO