开启透明数据加密功能
操作场景
透明数据加密(Transparent Data Encryption,简称TDE),对数据文件执行实时I/O加密和解密,数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密,能有效保护数据库及数据文件的安全。
TDE主要应对以下的场景:
- 硬盘被盗导致数据泄露。
- 黑客入侵系统进行文件复制导致数据泄露。在没有启用TDE的情况下,只要获得了数据库文件,即可直接浏览数据库中的所有内容,但如果在数据库上启用了TDE,整个数据被安全加密;没有密钥就不能访问到数据。
版本限制
- 8.0,对应的小版本为8.0.32.250300及以上版本。
- 5.7,对应的小版本为5.7.38.221000及以上版本。
实例版本的查询方法请参见如何查看云数据库RDS实例的版本号。
性能说明
加密表的数据触发I/O时,加解密算法额外的计算开销,会给CPU带来额外的负载。
在通用场景下,实例的CPU未达到瓶颈时,加密表读写的性能影响在5%以内。
CPU小于8核的实例在高并发、CPU负载高的场景下,加密表的I/O密集型业务会产生更高的劣化,劣化幅度与业务模型和加密算法有关,国密SM4算法加密的数据比AES劣化幅度更大。
功能限制
阶段 | 限制说明 |
|---|---|
TDE开启前 |
|
TDE开启过程中 |
|
TDE开启后 |
|
开启实例级别的TDE加密功能
- 单击管理控制台左上角的
,选择区域。 - 单击页面左上角的
,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。 - 在“实例管理”页面,单击目标实例名称,进入实例的“概览”页面。
- 单击“TDE状态”后的“开启”。图1 开启实例级别的TDE加密功能

- 在弹出框中,单击“确定”,开启TDE加密功能。图2 TDE开启

- TDE开通后,如果您需要恢复数据到本地,参考以下两种方式:
加密或解密表
- 连接目标实例。
- 执行如下命令对表进行加密或解密,tablename 为需要加密或解密的表名。
alter table tablename encryption='Y'; 或 alter table tablename encryption='N'; 都属于algorithm=COPY的DDL语句。与其他algorithm=COPY的DDL语句一样,由于实现方式是创建一张新表,拷贝所有数据后重命名,会导致以下现象:
- 在DDL执行完毕后,对该表的查询会有短暂时间的性能抖动。
- 在缓冲池(buffer pool)没打满的情况下,内存负载会增高。


