mysql审计是什么意思_MySQL审计audit

导读:

MySQL社区版是不带审计功能的,如果要使用MySQL审计,可以考虑使用中间件(例如proxysql)或者是MariaDB的审计插件。这里以MariaDB的审计插件为例,实现MySQL 5.7的审计功能。

版本信息

操作系统版本               :CentOS 7.4

MySQL数据库版本       :MySQL 5.7.27 社区版

MariaDB审计插件版本 :1.4.0

Note:

1.MariaDB审计插件一直在更新,不同版本的审计插件功能也不同,每个版本的功能见:https://mariadb.com/kb/en/mariadb-audit-plugin-options-and-system-variables/#server_audit_file_rotate_now

2.我们在给MySQL数据库安装审计插件时,需要从MariaDB里面拷贝审计插件。MariaDB版本与审计插件版本关系如下:https://mariadb.com/kb/en/mariadb-audit-plugin-versions/

3.MySQL版本与审计插件版本没有特别的联系,建议下载最新。

(一)下载安装

直接下载MariaDB的二进制安装包,下载链接如下:

下载完成之后,解压安装包。然后到plugin路径下,该路径是MariaDB存储插件的地方:

mariadb-10.1.23-linux-x86_64/lib/plugin

在该路径下存在 server_audit.so 文件,将其拷贝到MySQL服务器上。

在MySQL数据库上查看其插件存放路径,如下:

mysql> show variables like 'plugin_dir';+---------------+------------------------------+

| Variable_name | Value |

+---------------+------------------------------+

| plugin_dir | /usr/local/mysql/lib/plugin/ |

+---------------+------------------------------+

将MariaDB的审计插件server_audit.so存放到该路径下

[root@pro1 plugin]# ll

...-rw-r--r--. 1 root root 176810 Jan 7 16:17server_audit.so

...

# 修改插件权限

[root@pro1 plugin]#chownmysql:mysql server_audit.so

[root@pro1 plugin]#chmod 755server_audit.so

[root@pro1 plugin]# ll

...-rwxr-xr-x. 1 mysql mysql 176810 Jan 7 16:17server_audit.so

...

进入数据库安装插件

mysql> INSTALL PLUGIN server_audit SONAME 'server_audit.so';

Query OK,0 rows affected (0.00 sec)

安装之后,可以看到数据库插件了

mysql>show plugins ;+----------------------------+----------+--------------------+-----------------+---------+

| Name | Status | Type | Library | License |

+----------------------------+----------+--------------------+-----------------+---------+

...| SERVER_AUDIT | ACTIVE | AUDIT | server_audit.so | GPL |

+----------------------------+----------+--------------------+-----------------+---------+

(二)审计配置

审计配置即修改参数信息即可,需要注意的是最好将其放入MySQL的参数文件(my.cnf),如果仅在数据库层面做修改,数据库重启后参数将失效。

mysql> show variables like '%audit%';+-------------------------------+-----------------------+

| Variable_name | Value |

+-------------------------------+-----------------------+

| server_audit_events | |

| server_audit_excl_users | |

| server_audit_file_path | server_audit.log |

| server_audit_file_rotate_now | OFF |

| server_audit_file_rotate_size | 1000000 |

| server_audit_file_rotations | 9 |

| server_audit_incl_users | |

| server_audit_loc_info | |

| server_audit_logging | OFF |

| server_audit_mode | 1 |

| server_audit_output_type | file |

| server_audit_query_log_limit | 1024 |

| server_audit_syslog_facility | LOG_USER |

| server_audit_syslog_ident | mysql-server_auditing |

| server_audit_syslog_info | |

| server_audit_syslog_priority | LOG_INFO |

+-------------------------------+-----------------------+

这里罗列了重点参数的含义:

97d2ced1a288e30962d473e76901aaf9.png

我的最终配置如下:

mysql> show variables like '%audit%';+-------------------------------+-----------------------+

| Variable_name | Value |

+-------------------------------+-----------------------+

| server_audit_events | CONNECT |

| server_audit_excl_users | |

| server_audit_file_path | server_audit.log |

| server_audit_file_rotate_now | OFF |

| server_audit_file_rotate_size | 100000000 |

| server_audit_file_rotations | 9 |

| server_audit_incl_users | |

| server_audit_loc_info | |

| server_audit_logging | ON |

| server_audit_mode | 1 |

| server_audit_output_type | file |

| server_audit_query_log_limit | 1024 |

| server_audit_syslog_facility | LOG_USER |

| server_audit_syslog_ident | mysql-server_auditing |

| server_audit_syslog_info | |

| server_audit_syslog_priority | LOG_INFO |

+-------------------------------+-----------------------+

(三)审计日志解析

一行代表一条完成的审计日志,日志中的字段用逗号分隔。各种事件将产生不同的审计记录,这些记录的格式个各不相同。根据审计事件,主要分为3类:

(3.1)连接审计

主要审计连接数据库、断开连接、连接失败等操作,其日志格式如下:

[timestamp],[serverhost],[username],[host],[connectionid],0,CONNECT,[database],,0[timestamp],[serverhost],[username],[host],[connectionid],0,DISCONNECT,,,0[timestamp],[serverhost],[username],[host],[connectionid],0,FAILED_CONNECT,,,[retcode]

(3.2)查询审计

即审计select语句,其日志格式如下:

[timestamp],[serverhost],[username],[host],[connectionid],[queryid],QUERY,[database],[object], [retcode]

(3.3)表相关审计

如果审计开启TABLE事件,则会审计创建、删除、重命名表等操作,日志格式如下:

[timestamp],[serverhost],[username],[host],[connectionid],[queryid],CREATE,[database],[object],

[timestamp],[serverhost],[username],[host],[connectionid],[queryid],READ,[database],[object],

[timestamp],[serverhost],[username],[host],[connectionid],[queryid],WRITE,[database],[object],

[timestamp],[serverhost],[username],[host],[connectionid],[queryid],ALTER,[database],[object],

[timestamp],[serverhost],[username],[host],[connectionid],[queryid],RENAME,[database], [object_old]|[database_new].[object_new],

[timestamp],[serverhost],[username],[host],[connectionid],[queryid],DROP,[database],[object],

【完】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值