mysql审计

本文介绍了MySQL审计插件的安装、配置方法及其工作原理。包括如何安装审计插件、配置审计日志策略、格式及刷新策略等内容。还讨论了审计插件的限制和管理方式。

参考文档:
https://www.percona.com/doc/percona-server/5.6/management/audit_log_plugin.html#audit-log-plugin

1、前言

如果没有开启general log,你估计找不到是谁执行的SQL吧,这时我们需要MYSQL的审计插件

2、插件安装及配置
mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
Query OK, 0 rows affected (0.02 sec)
条件:percona mysql 5.5.37及5.6.17以上版本

mysql> show plugins;
mysql> show variables like '%audit%';
+----------------------------+---------------+
| Variable_name              | Value         |
+----------------------------+---------------+
| audit_log_buffer_size      | 1048576       |  审计缓存大小,建议设置为4096的倍数,该参数只有在audit_log_strategy为ASYNCHRONOUS时生效。
| audit_log_exclude_accounts |               |  
| audit_log_exclude_commands |               |
| audit_log_file             | audit.log     |  指定日志文件,可以指定绝对路径,没有指定路径,将存储在数据目录
| audit_log_flush            | OFF           |  控制审计日志的归档,只有在audit_log_rotate_on_size=0的时候生效,在手工重命名审计日志归档后,可以指定audit_log_flush=1来生成新的审计日志
| audit_log_format           | OLD           |  指定审计日志格式,OLD记录日志为xml属性,NEW记录日志为XML标签
| audit_log_handler          | FILE          |  指定审核日志保存格式:FILE、SYSLOG
| audit_log_include_accounts |               |
| audit_log_include_commands |               | 
| audit_log_policy           | ALL           |  指定审计日志记录的事件 ALL - 记录所有事件 LOGINS - 只记录登录连接信息 QUERIES - 只记录查询事件 NONE - 不记录任何事件
| audit_log_rotate_on_size   | 0             |  设置审计日志的大小,当日志到设置值,将自动轮转
| audit_log_rotations        | 0             |  指定审计日志文件数量
| audit_log_strategy         | ASYNCHRONOUS  |  
| audit_log_syslog_facility  | LOG_USER      |  
| audit_log_syslog_ident     | percona-audit |
| audit_log_syslog_priority  | LOG_INFO      |
+----------------------------+---------------+

audit_log_strategy 
指定审计日志的刷新策略,只有在 audit_log_handler 为 'FILE'时该变量才生效。
ASYNCHRONOUS - 异步(默认),使用内存缓冲区,缓冲区满时不删除消息
PERFORMANCE - 使用内存缓冲区,缓冲区满时删除消息
SEMISYNCHRONOUS - 直接写入到文件中,通过操作系统刷新同步事件
SYNCHRONOUS - 直接写入到文件中,实时同步刷新事件

3、审计限制:
审计日志默认存放在data路径下,由于XML文件没有经过加密,官网建议通过参数指定到特殊路径下,设置相应人员权限,进行安全控制。
此外审计功能有如下情况不能进行记录:
1)只有top-level(无变量定义)的语句才能进行审计,存储程序如存储过程,触发器,函数等不审计;
2)涉及到外部文件的语句无法进行审计,如load data infile。。

4、管理相关:

动态关闭或卸载审计插件:
set global audit_log_policy=NONE; 

UNINSTALL PLUGIN audit_log ;

管理日志:(如果写配置文件里面,需要plugin-load = audit_log.so)

 [mysqld]
audit_log_policy=ALL
audit_log_format=JSON

audit_log_file=/path/to/audit.log     //要有可写权限
audit_log_rotate_on_size=1024M
audit_log_rotations=10

plugin-load = audit_log.so

需要重启服务

转载于:https://my.oschina.net/longquan/blog/873207

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值