MySQL Audit 审计
审计插件的选择:
市面上有三种免费的审计插件
- mariadb
- percona
- McAfee
其中,McAfee的最容易获得,我们选用McAfee的审计插件。
mysql-audit下载地址
1. 部署mysql-audit
1.1 确定本机MySQL插件的位置
mysql [(none)]> show global variables like 'plugin_dir';
+---------------+-------------------------------+
| Variable_name | Value |
+---------------+-------------------------------+
| plugin_dir | /home/mysql/mysql/lib/plugin/ |
+---------------+-------------------------------+
1 row in set (0.03 sec)
1.2 解压,复制到plugin的文件目录
注意:下载下来的是归属root用户,且没有执行权限的。需要加上。
$ unzip audit-plugin-mysql-8.0-1.1.7-921-linux-x86_64.zip
Archive: audit-plugin-mysql-8.0-1.1.7-921-linux-x86_64.zipcreating: audit-plugin-mysql-8.0-1.1.7-921/creating: audit-plugin-mysql-8.0-1.1.7-921/lib/inflating: audit-plugin-mysql-8.0-1.1.7-921/lib/libaudit_plugin.so inflating: audit-plugin-mysql-8.0-1.1.7-921/COPYING inflating: audit-plugin-mysql-8.0-1.1.7-921/THIRDPARTY.txt inflating: audit-plugin-mysql-8.0-1.1.7-921/README.txt inflating: audit-plugin-mysql-8.0-1.1.7-921/plugin-name.txt creating: audit-plugin-mysql-8.0-1.1.7-921/utils/inflating: audit-plugin-mysql-8.0-1.1.7-921/utils/offset-extract.sh
$ cd audit-plugin-mysql-8.0-1.1.7-921
$ ll
total 36
-rw-r--r--. 1 root root 19071 Jan 28 23:14 COPYING
drwxr-xr-x. 2 root root 31 Jan 28 23:15 lib
-rw-r--r--. 1 root root 1833 Jan 28 23:14 plugin-name.txt
-rw-r--r--. 1 root root 1905 Jan 28 23:14 README.txt
-rw-r--r--. 1 root root 6494 Jan 28 23:14 THIRDPARTY.txt
drwxr-xr-x. 2 root root 30 Jan 28 23:15 utils
$ cd lib/
$ ll
total 2964
-rw-r--r--. 1 root root 3034048 Jan 28 23:15 libaudit_plugin.so
$ chown -R mysql:mysql libaudit_plugin.so
$ chmod +x libaudit_plugin.so
$ cd /home/mysql/mysql/lib/plugin/
$ ll
total 105996
...
-rwxr-xr-x. 1 mysql mysql 3034048 Jan 28 23:15 libaudit_plugin.so
...
2. 开启及配置mysql-audit
2.1 实例内开启(不推荐)
生产环境不推荐使用这个方式打开审计插件。此方法不用重启实例。
mysql [(none)]> INSTALL PLUGIN AUDIT SONAME 'libaudit_plugin.so';
Note: On production systems, McAfee recommends using the plugin-load option for installing the audit plugin.
2.2 my.cnf
配置文件中打开
在[mysqld]
标签下增加:
plugin-load=AUDIT=libaudit_plugin.so
在配置好my.cnf
后需要重启实例才能生效。
2.3 配置
可以在MySQL客户端中用show global variables
查看审计的配置。
一共有30个可自定义的参数。
mysql [(none)]> show global variables like '%audit%';
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| audit_before_after | after |
| audit_checksum | |
| audit_client_capabilities | OFF |
| audit_delay_cmds | |
| audit_delay_ms | 0 |
| audit_force_record_logins | OFF |
| audit_header_msg | ON |
| audit_json_file | OFF |
| audit_json_file_bufsize | 1 |
| audit_json_file_flush | OFF |
| audit_json_file_retry | 60 |
| audit_json_file_sync | 0 |
| audit_json_log_file | mysql-audit.json |
| audit_json_socket | OFF |
| audit_json_socket_name | /var/run/db-audit/mysql.audit__data_mysql_3308_mydata_3308 |
| audit_json_socket_retry | 10 |
| audit_json_socket_write_timeout | 1000 |
| audit_offsets | |
| audit_offsets_by_version | ON |
| audit_password_masking_cmds | CREATE_USER,GRANT,SET_OPTION,SLAVE_START,CREATE_SERVER,ALTER_SERVER,CHANGE_MASTER,UPDATE |
| audit_password_masking_regex | identified(?:/\*.*?\*/|\s)*?by(?:/\*.*?\*/|\s)*?(?:password)?(?:/\*.*?\*/|\s)*?['|"](?<psw>.*?)(?<!\\)['|"]|password(?:/\*.*?\*/|\s)*?\((?:/\*.*?\*/|\s)*?['|"](?<psw>.*?)(?<!\\)['|"](?:/\*.*?\*/|\s)*?\)|password(?:/\*.*?\*/|\s)*?(?:for(?:/\*.*?\*/|\s)*?\S+?)?(?:/\*.*?\*/|\s)*?=(?:/\*.*?\*/|\s)*?['|"](?<psw>.*?)(?<!\\)['|"]|password(?:/\*.*?\*/|\s)*?['|"](?<psw>.*?)(?<!\\)['|"] |
| audit_record_cmds | |
| audit_record_objs | |
| audit_sess_connect_attrs | ON |
| audit_socket_creds | ON |
| audit_uninstall_plugin | OFF |
| audit_validate_checksum | ON |
| audit_validate_offsets_extended | ON |
| audit_whitelist_cmds | BEGIN,COMMIT,PING |
| audit_whitelist_users | |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
30 rows in set (0.01 sec)
其中:
audit_json_file
:控制审计插件的开关
audit_json_log_file
:定义审计日志存放的位置,默认值:mysql-audit.json
audit_json_file_flush
:刷新审计日志用
配置例:
[mysqld]
#audit
audit_json_file=ON
plugin-load=AUDIT=libaudit_plugin.so
audit_json_log_file=/data/logs/mysql-audit.json
2.3.1 audit_json_file_flush
的用法
讨论帖:mysql-audit issue #140
可以创建个crontab
每小时分割一次审计日志,参考内容如下:
#!/bin/bash
source ~/.bash_profilemv mysql-audit.json mysql-audit.json.`date +%F`
mysql -S /data/mysql/3308/mysql.sock -uroot -proot -e 'set global audit_json_file_flush=on;'
大概这个意思,真正应用在生产上,还需要添加自己所需的内容。
MySQL Audit 审计相关推荐
- mysql audit 表_关于MySQL AUDIT(审计)那点事
2017年06月02日MySQL社区版本最新版为MySQL_5.7.18,但是该版本不带AUDIT功能(MySQL Enterprise Edition自带AUDIT功能), 因此需要加载plugin ...
- mysql 操作审计_利用mysql的audit审计功能记录用户操作信息
mysql数据库中我们如果想记录用户的操作信息,可以通过audit审计功能来来实现.该功能是被自动触发的,在文件plugin_audit.h中可以看到比较详细的定义.在audit插件中,可控制的变量包 ...
- percona mysql 审计_Percona MySQL Audit to rsyslog
参数配置 参数配置如下图,show global variables like '%audit%'; audit_log_policy = QUERIES,只记录查询信息: audit_log_han ...
- 开源日志审计系统_一文掌握mysql数据库审计特点、实现方案及审计插件部署教程...
概述 数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,对攻击行为进行阻断.它通过对用户访问数据库行为的记录.分 ...
- mysql 参照完整性规则_详解mysql数据库审计特点、实现方案及审计插件部署演示...
概述 数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,对攻击行为进行阻断.它通过对用户访问数据库行为的记录.分 ...
- MySQL数据库审计系统
数据库审计 数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,对攻击行为进行阻断.它通过对用户访问数据库行为的记 ...
- 如何安装Mysql的审计插件
背景 最近项目要验收了,数据库的一个验收标准就是要有数据库审计,所以参照资料安装了Mysql的审计插件. 正文 一.下载插件 下载地址:https://bintray.com/mcafee/mysql ...
- 使用Audit审计服务排查linux终端异常关机问题
目录 [基本信息] [问题描述] [定位过程] 1,整理规律如下 2,部署audit审计服务定位问题 3,定位后期 [问题原因] [问题解决] [问题小结] 附录 1,audit审计服务部署脚本及其安 ...
- mysql audit log.so_Percona Audit Log Plugin(mysql 审计)
背景: 当数据业务上或者其他的特殊情况时可能会进行审计,以便知道数据库当时所做的操作,今天给大家带来percona的审计插件 Percona Audit Log Plugin提供对特定服务器上执行的连 ...
- Linux中 MySql设置审计及报错解决 can‘t initialize function ‘audit‘; Plugin initialization function failed
环境: 服务器:CentOS Linux release 7.4.1708 64位 MySql: 社区版5.7.35 由于使用的是社区版MySql,没有内置审计,使用的McAfee的插件 1.下载插 ...
最新文章
- JetBrains发布DataGrip 1.0——数据库与SQL领域中的瑞士军刀
- 使用commandfield删除、修改gridview
- springMVC如何接收和发送json数据对象
- 异步加载在Vue生命周期哪个阶段更合理
- tfrecord数据报错 InvalidArgumentError: Feature: feature (data type: string) is required but could not
- list 用法总结2
- 做朋友圈需先从做人开始
- html页面获取扫码枪参数,js获取扫码枪输入数据的方法
- python range 小数_python中如何表示一个无限循环小数?(不用分数的形式)python,使用range语...
- dedecms织梦后台系统用户管理授权栏目BUG修正
- 名帖148 行书《兰亭八柱帖》第六册:于敏中补戏鸿堂刻柳公权书兰亭诗阙笔册
- python入门容器-列表ListDay05
- 干货 | 数据思维在携程商旅页面性能优化中的一次实践
- 饭局上领导递给你两根烟怎么做(懂得礼数领导赏识重用)
- php 银行支付通道_PHP银联在线支付接口的开发实例
- Elasticsearch 5.x 生产数据的灾备和恢复
- 一篇文章让你读懂 OpenStack 的起源、架构和应用
- showdoc mysql_ShowDoc的搭建
- 硬盘/移动硬盘分区合并失败数据丢失了如何恢复?
- 小波变换之点对称边界延拓(Symmetric boundary extension)