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插件信息

几个重要变量的说明:

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记录的日志信息

可以看到,在启用 server_audit_logging 之后,就开始记录所有事件信息,修改密码的操作也有记录。

server_audit 在审核分析数据时可能会提供很多的帮助。