IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

mysql表空间加密 keyring encryption

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

从5、7.11开始,mysql开始支持物理表空间的加密,它使用两层加密架构。
包括:master key 和 tablespace key

master key用于加密tablespace key,加密后的结果存储在tablespace的header中。tablespace key用于加密数据
当用户想访问加密的表时,innoDB会先用master key对之前存储在header中的加密信息进行解密,得到tablespace key。再用tablespace key解密数据信息。tablespace key是不会被改变的(除非进行alter table t1 encrytion=NO, alter table t1 encrytion=YES)。而master key可以随时改变(ALTER INSTANCE ROTATE INNODB MASTER KEY;)

InnoDB表空间加密依赖于keyring插件。总共有四个插件

keyring插件 开始版本 类型
keyring_file 5.7.11 社区版
keyring_encrypted_file 5.7.21 企业版
keyring_okv 5.7.12 企业版
keyring_aws 5.7.19 企业版

由于上面四种类型的加密后三种都只有在企业版本有,所以接下来的介绍主要以社区版本的keyring_file为例进行说明。

安装:

1、配置文件中加入如下参数:
[mysqld]
early-plugin-load=keyring_file.so
keyring_file_data=/usr/local/mysql/mysql-keyring/keyring

2、查看所加插件是否生效:
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE ‘keyring%’;
+————–+—————+
| PLUGIN_NAME | PLUGIN_STATUS |
+————–+—————+
| keyring_file | ACTIVE |
+————–+—————+

3、查看 innodb_file_per_table参数是否已经为开(default:ON)

4、创建加密表空间
CREATE TABLE t1 (c1 INT) ENCRYPTION=’Y’;
ALTER TABLE t1 ENCRYPTION=’Y’;

5、取消加密表空间:
ALTER TABLE t1 ENCRYPTION=’N’;

master key需周期性地改变,增强安全性,master key rotation是原子的、实例级别的操作。轮换时,所有的tablespace key都会被重新用新master key加密并存储到相关的tablespace header中。
更换master key只会改变master key和重新加密tablespace key,不会解密及重加密表空间数据。
更换语句:ALTER INSTANCE ROTATE INNODB MASTER KEY;
更换时,能够进行并发地DML操作,但是不能和CREATE TABLE … ENCRYPTED 或 ALTER TABLE … ENCRYPTED 并行。

当在进行master key 更换时,实例挂掉。那在实例重启时会继续此操作。
在重启过程中,keyring插件将优先于innoDB初始化执行,因为innoDB需要keyring插件来解密相关的数据,这也是为什么需要用early-plugin-load参数的原因(用--plugin-load--plugin-load-add 加载的插件是在InnoDB初始化后才加载的。用 INSTALL PLUGIN加载的插件是注册在mysql.plugin表中,但它也是一个innodb表,里面注册的插件也是在innodb初始化后才执行的)。同时,mysql会去扫描所有的加密表空间文件。对于依旧使用旧master key的文件,innodb会先用old master key来解密tablespace key,再用new master key加密tablespace key后重写回tablespace header中。

当导出一个加密的表时,InnoDB生成一个transfer key用来加密tablespace key,加密的tablespace key及transfer key存储在tablespace_name.cfp文件中。当导入时,InnoDB会使用transfer key来解密tablespace key。

执行ALTER INSTANCE ROTATE INNODB MASTER KEY时,主从实例必须都得支持表空间加密才行
ALTER INSTANCE ROTATE INNODB MASTER KEY执行成功后会被记录在binlog中。

找出加密的表空间:
SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES WHERE CREATE_OPTIONS LIKE ‘%ENCRYPTION=”Y”%’;
+————–+————+—————-+
| TABLE_SCHEMA | TABLE_NAME | CREATE_OPTIONS |
+————–+————+—————-+
| test | t1 | ENCRYPTION=”Y” |
+————–+————+—————-+

注意:
1、不能一次使用多个加密插件。
2、确保master key的安全性,如果丢失,就会造成数据文件的不可用。在初次建立表空间加密及master key rotation时,建议备份
3、ALTER TABLE … ENCRYPTION 操作用 ALGORITHM=COPY重建表,不支持ALGORITHM=INPLACE
4、如果实例退出,建立用同样的加密配置启动实例。
5、第一个新的或存在的表加密时,会自动生成master key
6、轮换Master key时只是重新加密tablespace key,并没有改变tablespace key,要改变tablespace key,需要用 ALTER TABLE tbl_name ENCRYPTION先禁用加密再重新加密,它使用ALGORITHM=COPY来重建表。
7、如果一个表创建时使用compression及encryption选项,compression会在encryption前执行。
8、如果keyring 数据文件(keyring_file_data变量)是空的或不存在,第一次执行 ALTER INSTANCE ROTATE INNODB MASTER KEY 会生成master key.
9、卸载keyring_file 插件时并不会删除keyring 数据文件。
10、不建议把keyring数据文件和tablespace表放在同一个目录中。
11、在运行或重启时修改 keyring_file_data 变量会使之前加密的表不可访问,造成数据丢失。

限制:
1、AES是唯一支持的加密算法。在InnodB表空间中,tablespace key使用Electronic Codebook (ECB)块加密模式,data使用Cipher Block Chaining (CBC)块加密模式.
2、改变一个有的ENCRYPTION属性使用的是ALGORITHM=COPY,不支持ALGORITHM=INPLACE
3、只支持加密存储在file-per-table的表,general tablespaces, system tablespace, undo log tablespaces,temporary tablespace不支持加密。
4、不能把一个加密的表空间移到一个不支持的表空间类型。
5、表空间加密只加密表空间中的数据,在redo log,undo log,binary log中的数据是不加密的。
6、已经被加密的表不允许修改成其它存储引擎。


Warning: A non-numeric value encountered in /data/wangzhan/tech.souyunku.com.wp/wp-content/themes/dux/functions-theme.php on line 1154
赞(67) 打赏



未经允许不得转载:搜云库技术团队 » mysql表空间加密 keyring encryption

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码
IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

评论 抢沙发

大前端WP主题 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏


Fatal error: Uncaught Exception: Cache directory not writable. Comet Cache needs this directory please: `/data/wangzhan/tech.souyunku.com.wp/wp-content/cache/comet-cache/cache/https/tech-souyunku-com/index.q`. Set permissions to `755` or higher; `777` might be needed in some cases. in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php:367 Stack trace: #0 [internal function]: WebSharks\CometCache\Classes\AdvancedCache->outputBufferCallbackHandler() #1 /data/wangzhan/tech.souyunku.com.wp/wp-includes/functions.php(5109): ob_end_flush() #2 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(303): wp_ob_end_flush_all() #3 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /data/wangzhan/tech.souyunku.com.wp/wp-includes/plugin.php(470): WP_Hook->do_action() #5 /data/wangzhan/tech.souyunku.com.wp/wp-includes/load.php(1097): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php on line 367