CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
创建用于以透明方式加密数据库的加密密钥。有关透明数据库加密的详细信息,请参阅了解透明数据加密 (TDE)。
语法
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