加密模式或一般表空间¶
雷竞技下载官网Percona Server for MySQL使用与*MySQL相同的加密架构,一个由主密钥和表空间密钥组成的两层系统。主密钥可以根据需要更改,或在钥匙圈中旋转。每个表空间密钥在解密时保持相同。
该特性需要keyring插件。
为模式和一般表空间加密设置默认值¶
一般表空间中的表要么全部加密,要么全部不加密。表空间不能同时包含加密表和未加密表。
在Percona Server for雷竞技下载官网 MySQL 8.0.16-7之前的版本中,使用变量innodb_encrypt_tables。
innodb_encrypt_tables¶
| 选项 | 描述 |
|---|---|
| 命令行 | -innodb-encrypt-tables |
| 范围 | 全球 |
| 动态 | 是的 |
| 数据类型 | 文本 |
| 默认的 | 从 |
变量是弃用并在MySQL 8.0.16-雷竞技下载官网7的Percona服务器中删除。
默认设置为“关闭”。
模式或一般表空间的加密由default_table_encryption变量决定,除非你在CREATE schema或CREATE tablespace语句中指定了encryption子句。这个变量在MySQL 8.0.16-7版本的Percona Se雷竞技下载官网rver中实现。
您可以设置default_table_encryption单个连接中的变量。
mysql >集default_table_encryption=在;
系统变量¶
default_table_encryption¶
雷竞技下载官网Percona Server for MySQL 8.0.31-23删除ONLINE_TO_KEYRING和ONLINE_TO_KEYRING_TO_UNENCRYPTED选项。
| 选项 | 描述 |
|---|---|
| 命令行 | default-table-encryption |
| 范围 | 会话 |
| 动态 | 是的 |
| 数据类型 | 文本 |
| 默认的 | 从 |
定义模式和通用表空间的默认加密设置。该变量允许您在不指定ENCRYPTION子句的情况下创建或更改模式或表空间。默认加密设置只应用于模式和一般表空间,不应用于MySQL系统表空间。
该变量有以下可能的选项:
| 价值 | 描述 |
|---|---|
在 |
新表是加密的。添加加密= " N "到创建表或ALTER TABLE语句创建未加密的表。 |
从 |
默认情况下,新表是不加密的。添加加密= " Y "到创建表或ALTER TABLE语句创建加密表。 |
ONLINE_TO_KEYRING |
这个选项是技术预览质量。 雷竞技下载官网Percona Server for MySQL 8.0.31-23删除了此选项。* 将由主密钥加密的表空间转换为使用高级加密密钥旋转。只能在创建表或修改表时应用keyring加密。 |
ONLINE_FROM_KEYRING_TO_UNENCRYPTED |
这个选项是技术预览质量。 雷竞技下载官网Percona Server for MySQL 8.0.31-23删除了此选项。* 将高级加密密钥旋转加密的表空间转换为未加密的表空间。 |
请注意
的ALTER TABLE方法时,语句才更改当前加密模式加密条款。
Merge-sort-encryption¶
innodb_encrypt_online_alter_logs¶
| 选项 | 描述 |
|---|---|
| 命令行 | -innodb_encrypt-online-alter-logs |
| 范围 | 全球 |
| 动态 | 是的 |
| 数据类型 | 布尔 |
| 默认的 | 从 |
这个变量同时开启了InnoDB使用并行排序进行全文搜索、使用归并排序构建索引以及InnoDB为在线DDL创建的在线DDL日志的加密。加密可用于查询和后端进程中使用的文件合并。
使用加密¶
如果不设置默认加密设置,则可以使用加密设置。
mysql >创建表空间tablespace_name加密=“Y”;
表空间中包含的所有表都是加密的或不加密的。不能只加密一般表空间中的某些表。此特性扩展了创建表空间声明接受加密= ' Y / N '选择。
请注意
在Percona 雷竞技下载官网Server for MySQL 8.0.13之前加密选项是特定于创建表或显示创建表声明。
在Perco雷竞技下载官网na Server for MySQL 8.0.13中,该选项是一个表空间属性,并且不允许使用创建表或显示创建表语句,除了每个表文件的表空间。
在加密的通用表空间中,尝试创建未加密的表会生成以下错误:
mysql >创建表格t3(一个INT,b文本)表空间喷火加密=“N”;
预期的输出
错误1478 (HY0000): InnoDB表空间foo只能包含加密表。
服务器诊断创建或移动表(包括分区表)到具有不兼容加密设置的普通表空间的尝试,并终止该过程。
如果必须在不兼容的表空间之间移动表,请在另一个表空间中创建具有相同结构的表并运行插入到选择从每个源表到目标表。
导出加密的通用表空间¶
只能导出加密的表空间