MySQL TDE 透明数据加密 知识总结

本文介绍了MySQL数据库的存储加密方法,重点讲解了TDE(透明数据加密)的工作原理、MySQL对其的支持情况,以及使用TDE时的关键注意事项,包括加密限制和性能影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、存储加密说明

二、TDE概述

三、MySQL对TDE支持情况

四、注意事项


一、存储加密说明

MySQL数据库存储加密有多种方式可供选择,主要分为两大类:

  • 利用字段加密,在对数据库存储/读取时进行加密/解密操作,需要用户修改应用程序
  • 利用TDE透明加密客户端,实现数据库实例文件存储加密,用户无需修改应用程序

二、TDE概述

TDE(Transparent Data Encryption,透明数据加密) 即对数据文件执行实时I/O加密和解密。数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密。TDE通过对MySQL数据库中的表空间进行加密,阻止可能的攻击者绕过数据库直接从存储中读取敏感信息。TDE加密具有如下优点:

  • 开发人员无需更改任何应用程序
  • 根据官方文档,启用后性能影响百分比在个位数(经验5%),启用TDE不会增加数据文件的大小
三、MySQL对TDE支持情况

MySQL 5.7 开始支持TDE,8.0提供更多的加密选项,社区版和企业版都可以,区别是企业版提供额外的keyring组件和插件,可以提供更好的安全性(如果要达到合规的要求,需要使用企业版),详细支持情况如下表所示:

keyring插件名称社区版企业版备注
component_keyring_file8.0.24+8.0.24+-
component_keyring_encrypted_file不支持8.0.24+-
component_keyring_oci不支持8.0.31+-
keyring_file5.7.11+5.7.11+将秘钥数据保存在本地的文件
keyring_encrypted_file不支持5.7.21+将秘钥数据保存在本地的加密文件
keyring_okv不支持5.7.12+-
keyring_aws不支持5.7.19+Amazon KMS通信,用于后端存储
keyring_hashicorp不支持8.0.18+与HashiCorp Vault通信,用于后端存储
keyring_oci不支持8.0.22+-
四、注意事项

MySQL的keyring_file加密会有以下限制,使用时需要注意:

  • 使用keyring_file 和 keyring_encrypted file 插件时,无法满足某些规范要求的密钥集中管理
  • 高级加密标准(AES)是唯一支持的加密算法
  • 表空间加密仅支持存储在单独表空间的InnoDB表,存储在其他InnoDB表空间类型(包括常规表空间,系统表空间,撤消日志表空间和临时表空间)中的表不支持加密。
  • 一次只能启用一个keyring插件,不支持启用多个keyring插件
  • 开启TDE后,由于查询表数据时会解密并读取到内存中,因此查询加密的数据时结果仍是明文数据,而常用数据库工具(Navicat等)可以正常使用
  • 如果数据库实例上拥有至少一个加密的数据库,那么也可能会降低未加密数据库的性能,所以建议加密数据库和未加密数据库保存在不同的数据库实例上
  • 更改密钥插件需要解密表,卸载当前的密钥插件,安装和配置其他密钥插件,并重新加密表
  • 已经被加密的表(Innodb引擎)不允许修改成其它存储引擎
  • 先配置主从复制,再分别启用tde加密,不会导致主从复制失败(即使主库与从库使用的不是同一个密钥文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值