如何使用MySQL Binlog Digger 4.17对mysql 8.0进行审计

时间:2024-04-12 19:48:18

Step 1.建立访问表, 用于存储登录信息

-- 建库

mysql> CREATE DATABASE `auditdb` DEFAULT CHARSET utf8mb4;

-- 建表

mysql> CREATE TABLE `accesslog` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `ServerID` int(11) DEFAULT NULL,
  `ConnectionID` int(11) DEFAULT NULL,
  `ConnUser` varchar(30) DEFAULT NULL,
  `MatchUser` varchar(30) DEFAULT NULL,
  `LoginTime` datetime DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

 

Step2. 为普通用户赋予写入权限(高级用户可以不赋予,因为高级用户已具备写入权限)

mysql> grant insert on `auditdb`.`accesslog` to 普通用户@具体主机;

mysql> flush privileges;

 

Step3. 在目标数据库的[mysqld]中增加以下:

init-connect='insert into auditdb.accesslog(ServerID, ConnectionID ,ConnUser ,MatchUser ,LoginTime) values(@@server_id, connection_id(),user(),current_user(),now());'

*** 配置init-connect完成后,需要重启mysql(生产环境请慎重) ***

 

Step 4. 下载并安装MySQL Binlog Digger 4.17

https://download.****.net/download/bournetai/13078374

 

如何使用MySQL Binlog Digger 4.17对mysql 8.0进行审计

注意:MySQL binlog Digger的挖掘用户(数据库账号)在mysql 8.0需要super或binlog_admin或replication slave权限, 而在mysql 5.7中则需要super或replication slave权限

 

Step 5.使用MySQL Binlog Digger 4.17进行dml操作审计(如果进行ddl审计, 则操作类型选择ddl)

如何使用MySQL Binlog Digger 4.17对mysql 8.0进行审计

如何使用MySQL Binlog Digger 4.17对mysql 8.0进行审计

 

如何使用MySQL Binlog Digger 4.17对mysql 8.0进行审计

注意:若访问表不存在或访问表中的信息与Binlog中的信息匹配不上,则不会显示审计信息

Redo:表示已经发生的重做信息
Seq:表示在挖掘重做结果中的序号
Server id:表示mysql> select @@server_id;
Thread id:表示Connection ID
ConnUser:表示UserName+IP(客户端IP)
MatchUser:表示在mysql.user存在的用户,且客户端以此用户登录
LoginTime:表示用户登录时间

GTID_NEXT:表示全局事务ID,一次事务或一次非事务操作都会产生一个新的gtid,它对应着一个Query

Query Time:表示一次操作的开始时间,这个操作可能是一个事务,也可能是非事务的一次操作
Query Log Pos:表示Query的position范围,它仅包括Query, 这个范围在GTID_NEXT之后,在具体STMT(SQL)之前
Query Exec_time:表示这次操作的耗时(单位:秒),这个操作可能是一个事务,也可能是非事务的一次操作
Query Error_code: 0表示执行成功,而-1表示有异常

Stmt Time:具体某条Stmt(SQL)的开始执行时间,例如在同一事务中,各Stmt(SQL)都有各自的开始执行时间,但具体相同的GTID_NEXT与Query
Stmt Log Pos:具体某条Stmt(SQL)的position范围,例如在同一事务中,各Stmt(SQL)都有各自的开始position与结束position,但具体相同的GTID_NEXT与Query

总之:GTID_NEXT与Query一一对应,而它们却包括一条或多条STMT(具体SQL)

 

此外,MySQL Binlog Digger 4.17还具备mysqlbinlog挖掘分析功能,可以为误删、误增、误改提供回滚SQL功能,此外还支持DDL重做操作挖掘.

 

### 声明 ### 

十分感谢您使用本工具, 本工具为免费产品, 对于因本工具而造成的损失, 本工作室概不承担! 因本人水平有限, 如发现不足, 请多多请正.

 

广州逆舟数据工作室 Bourne QQ:649869986 微信:wxid_glzhz1qg2xre22

2020-10-30 广州