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 AdventureWorks2012;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO

请参阅

参考

ALTER DATABASE SET 选项 (Transact-SQL)

ALTER DATABASE ENCRYPTION KEY (Transact-SQL)

DROP DATABASE ENCRYPTION KEY (Transact-SQL)

sys.dm_database_encryption_keys (Transact-SQL)

概念

透明数据加密 (TDE)

SQL Server 加密

SQL Server 和数据库加密密钥(数据库引擎)

加密层次结构