我经历了 this page of MySQL Doc 。对于 MySQL v8.0.x,我仍然不清楚存储在文件系统中的数据(主要是 .ibd 文件)是否默认加密?我看到有关表空间的大量信息说明:
<块引用>mysql 系统表空间包含 mysql 系统数据库和 MySQL 数据字典表。默认情况下未加密。
这是否也意味着存储的数据默认没有加密?有人可以帮我指向官方文档吗?
答案 0 :(得分:2)
是的,默认情况下数据未加密。
在 MySQL 8.0.16 之前,您必须明确设置加密以启用它,例如参见对于File-Per-Table Tablespace Encryption:
<块引用>在 MySQL 8.0.16 之前,必须指定 ENCRYPTION 子句才能启用加密。
这当然意味着如果你不指定它,它默认是禁用的。
自 MySQL 8.0.16 起,行为 is inherited:
<块引用>从 MySQL 8.0.16 开始,default_table_encryption 系统变量定义了模式和通用表空间的默认加密设置。当未明确指定 ENCRYPTION 子句时,CREATE TABLESPACE 和 CREATE SCHEMA 操作会应用 default_table_encryption 设置。
<块引用>默认情况下,表会继承创建它的架构或通用表空间的加密设置。例如,在启用加密的架构中创建的表默认是加密的。此行为使 DBA 能够通过定义和强制执行模式和通用表空间加密默认值来控制表加密的使用。
但 default_table_encryption
的默认值为 off
:
默认值关闭
<块引用>定义在不指定 ENCRYPTION 子句的情况下创建架构和通用表空间时应用的默认加密设置。
<块引用>default_table_encryption 变量仅适用于用户创建的架构和通用表空间。它不管理 mysql 系统表空间的加密。
请注意,如果您更改默认值,现有对象将不会自动加密,您必须明确更改它们。