Windows 下的MySQL安装keyring_file插件

本文详细介绍了如何在MySQL中配置、安装、使用keyring插件进行数据加密。从5.7.11版本开始,MySQL支持物理表空间加密,通过主密钥和表空间加密密钥实现数据的安全存储。步骤包括编辑my.ini配置文件,安装keyring_file插件,查看插件状态,加解密数据表以及卸载插件。文章还展示了主密钥的变更过程。
摘要由CSDN通过智能技术生成

文章目录

 

前言

从5.7.11开始,mysql开始支持物理表空间的加密,它使用两层加密架构。
包括:主密钥(master key) 和 表空间加密密钥(tablespace key)

主密钥用于加密加密密钥,加密后的加密密钥存储在表空间文件的header中。加密密钥用于加密数据
当用户想访问加密的表时,innoDB会先用 主密钥 对之前存储在表空间header中被加密的加密密钥进行解密,得到明文的加密密钥。

再用 加密密钥 解密数据信息。加密密钥是不会被改变的(除非进行alter table testt encrytion=NO/YES)。

而 主密钥 可以通过以下命令随时改变

查看变更前keyring文件

执行主密钥变更命令

mysql> ALTER INSTANCE ROTATE INNODB MASTER KEY;
Query OK, 0 rows affected (0.01 sec)

mysql>

再次查看变更后keyring文件 


 

一、配置my.ini

如没有该文件,可在创建一个在MySQL安装目录或C:\下,文件添加如下内容,目录以实际为准,然后重启MySQL。

[mysqld]
。。。其他配置。。
early-plugin-load=keyring_file.dll
keyring_file_data='D:\mysql-8.0.22\mysql-8.0.22-winx64\keyring'

# 其中keyring文件MySQL会自动创建,无需手动创建

二、安装keyring插件

登录MySQL,然后执行以下语句安装

mysql> install plugin keyring_file soname 'keyring_file.dll';
Query OK, 0 rows affected (0.01 sec)

三、查看插件状态


mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
    -> FROM INFORMATION_SCHEMA.PLUGINS
    -> WHERE PLUGIN_NAME LIKE 'keyring%';
+--------------+---------------+
| PLUGIN_NAME  | PLUGIN_STATUS |
+--------------+---------------+
| keyring_file | ACTIVE        |
+--------------+---------------+
1 row in set (0.00 sec)

mysql>

四、加解密数据表

mysql> use testdb;
Database changed
mysql> alter table testt encryption='Y';
Query OK, 3 rows affected (0.04 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS
    -> FROM INFORMATION_SCHEMA.TABLES
    -> WHERE CREATE_OPTIONS LIKE '%ENCRYPTION=''Y''%';

+--------------+------------+----------------+
| TABLE_SCHEMA | TABLE_NAME | CREATE_OPTIONS |
+--------------+------------+----------------+
| testdb       | testt      | ENCRYPTION='Y' |
+--------------+------------+----------------+
1 row in set (0.01 sec)

mysql>

mysql> alter table testt encryption='N';
Query OK, 3 rows affected (0.03 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql>

五、卸载keyring插件

mysql> UNINSTALL PLUGIN keyring_file;
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
    -> FROM INFORMATION_SCHEMA.PLUGINS
    -> WHERE PLUGIN_NAME LIKE 'keyring%';

Empty set (0.00 sec)

mysql>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值