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
    指定用于加密数据库加密密钥的非对称密钥的名称。要使用非对称密钥对数据库加密密钥进行加密,非对称密钥必须驻留在可扩展密钥管理提供程序上。

注释

在可使用“透明数据库加密”(TDE) 加密数据库之前,需要设置一个数据库加密密钥。以透明方式加密数据库时,将在文件级别上加密整个数据库,而无需对代码进行特殊修改。用于加密数据库加密密钥的证书或非对称密钥必须位于 master 系统数据库中。

只允许对用户数据库使用数据库加密语句。

数据库加密密钥不能从数据库中导出。它只能供系统、对服务器拥有调试权限的用户以及能够访问证书(用于加密和解密数据库加密密钥)的用户使用。

数据库所有者 (dbo) 发生更改时不必重新生成数据库加密密钥。

权限

需要数据库的 CONTROL 权限和用于加密数据库加密密钥的证书或非对称密钥的 VIEW DEFINITION 权限。

示例

有关使用 TDE 的其他示例,请参阅了解透明数据加密 (TDE)如何使用 EKM 启用 TDE

下面的示例使用 AES_256 算法创建一个数据库加密密钥,并使用名为 MyServerCert 的证书保护私钥。

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