透明数据加密(Transparent Data Encryption,简称 TDE)可以对实例数据文件执行实时 I/O 加密和解密。为了提高数据安全性,您可以启用透明数据加密,对实例数据进行加密。
说明:目前只有 SQL Server 2008 R2 和 MySQL 5.6 类型的数据库支持 TDE。
背景信息
TDE 可对数据文件执行实时 I/O 加密和解密,数据在写入磁盘之前会进行加密,从磁盘读入内存时会进行解密。TDE 不会增加数据文件的大小。开发人员无需更改任何应用程序,即可使用 TDE 功能。
注意事项
- TDE 开通后无法关闭。
- 加密使用秘钥由秘钥管理服务(KMS)产生和管理,RDS 不提供加密所需的秘钥和证书。开通 TDE 后,用户如果要恢复数据到本地,需要先通过 RDS 解密数据。
- 开通 TDE 后,会显著增加 CPU 使用率。
前提条件
已开通秘钥管理服务(KMS)。
操作步骤
- 登录 RDS 管理控制台,选择目标实例。
- 在菜单栏中选择 [backcolor=transparent]数据安全性,然后在 [backcolor=transparent]数据安全性 页面选择 [backcolor=transparent]TDE 页签。
单击 [backcolor=transparent]未开通,如下图所示。

单击 [backcolor=transparent]确定,开通 TDE。
[backcolor=transparent]说明:如果您未开通密钥管理服务,在开通 TDE 过程中会提示开启密钥管理服务,请根据引导开通秘钥管理服务后,再单击 [backcolor=transparent]未开通 来开通 TDE。
登录数据库,执行如下命令,对要加密的表进行加密。[backcolor=transparent]alter table [backcolor=transparent]<tablename>[backcolor=transparent] engine[backcolor=transparent]=[backcolor=transparent]innodb[backcolor=transparent],[backcolor=transparent] block_format[backcolor=transparent]=[backcolor=transparent]encrypted[backcolor=transparent];
后续操作
如果你要对 TDE 加密的表解密,请执行如下命令。
- [backcolor=transparent]alter table [backcolor=transparent]<tablename>[backcolor=transparent] engine[backcolor=transparent]=[backcolor=transparent]innodb[backcolor=transparent],[backcolor=transparent] block_format[backcolor=transparent]=[backcolor=transparent]default[backcolor=transparent];