server audit 插件测试使用示例
简介与安装
SERVER_AUDIT 是一个非常不错的插件,在 MariaDB 5.5.34 加入,提供服务器事件(activities) 记录功能。
例如联机 client 信息(账号, 主机 ..)、Queries 执行、Tables 信息;或者 Server 变数异动等。
是 MariaDB Package 内建的插件。
该 server_audit 插件记录服务器的活动。对于每个客户端会话,它记录谁连接到服务器(即用户名和主机),执行了哪些查询,访问了哪些表以及更改了服务器变量。此信息存储在循环日志文件( rotating log file)中,或者可以发送到本地 syslogd。
因为是内建的,所以安装简单:
INSTALL SONAME 'server_audit';
安装成功后,可以查看 MariaDB 的全局参数,了解 server_audit 的配置变量信息:
show global variables like 'server_audit%';
几个重要变量的说明:
server_audit_events
审核日志记录的事件类型。默认为空字符串,表示审计日志记录每一种事件类型。可以设定值,用于记录某些指定的事件,例如连接操作、查询操作、操作涉及到的表格等。
如下:
SET GLOBAL server_audit_events = 'CONNECT,QUERY,TABLE';
或者配置文件指定[mysqld]添加:
[mysqld]
server_audit_events=connect,query,table
server_audit_file_path
审核日志文件的名称和路径。默认值为“server_audit.log”,这意味着将在数据库目录中创建此文件。
server_audit_logging
启用或禁用日志记录。默认是未启用(OFF)的,要记录,则需启用:
SET GLOBAL server_audit_logging=on
配置文件修改:找到 my.cnf,在[mysql]参数下配置:
[server]
server_audit_logging=OFF
更多参数含义,访问官网:https://mariadb.com/kb/en/mariadb-audit-plugin-options-and-system-variables/#server_audit_events了解。
测试使用:
加入我现在继续修改账号 test2 的密码,执行以下语句:
GRANT all ON *.* TO 'test2'@'%' identified by '1234';
根据之前的介绍,因为有安装密码校验插件,所以会报错。可以打开审核日志文件 server_audit.log,查看是否有记录这条日志,默认地址在/var/lib/mysql/server_audit.log
:
可以看到,在启用 server_audit_logging 之后,就开始记录所有事件信息,修改密码的操作也有记录。
server_audit 在审核分析数据时可能会提供很多的帮助。