文件的大小,那么审计文件以日期为文件夹,以文件编号为后缀,且文件达到指定文件大小后,重新创建文件且文件编号递增。如:2012-6-20/mysql-audit.000000,如果未设置文件大小,则文件名以当前日期为后缀,如:mysql-audit. 2012-6-20;
审计文件大小格式为整数,或者整数加上单位,单位包括K、M、G。为了便于查看,不建议将该值设置的过大; www.2cto.com
审计类型包括FILE、TABLE两种。目前仅FILE有效。
此外,配置文件支持动态修改并生效的功能。审计配置文件修改后,将会重新加载配置选项。但鉴于性能问题,不建议频繁对配置文件进行修改。
安装使用
1 源码安装
针对不同的MySQL源码和不同操作系统,建议使用源码进行编译安装。该插件基于Linux 64位操作系统、MySQL 5.5.15/5.5.20源码进行编译和测试通过,并提供二进制动态库供二进制安装,具体二进制安装见下一节内容。
1.1 源码获取
1)审计插件源码
审计插件源码可以通过github获取最新版本。
github地址为:https://github.com/HengWang/mysql-audit。
github clone https://github.com/HengWang/mysql-audit
2)MySQL源码
MySQL源码可以从官网
下载,本文推荐使用Percona Server 5.5版本。推荐理由是Percona Server针对MySQL
源码基础之上,进行了改进,尤其是性能方面和参数选项方面。
1.2 拷贝插件源码
tar -xzf Percona-Server-.tar.gz
2)拷贝插件到源码
cp -rf mysql-audit/ Percona-Server-/plugin/
将插件源码拷贝到my
sql数据库源码的plugin文件夹下。
1.3、编译数据库源码
根据编译参数,对数据库源码进行编译,并安装。
www.2cto.com
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/
mysql
make
make install
安装完成后,在MYSQL_HOME(安装路径,文中设置为/usr/local/mysql)的lib/plugin/下面,会有audit.so和audit.cnf文件。
1.4 设置审计参数
根据审计需求,修改审计配置文件audit.cnf,对审计的选项参数、审计粒度进行设置。配置文件中对各个审计参数的功能进行了描述,可根据具体的需求设置。
1.5 创建审计路径
根据配置文件中设置的audit_dir的路径,创建审计文件夹。审计文件夹必须是mysql可操作的文件夹,如果指定了审计文件大小,指定的审计文件夹对mysql必须有xw权限。
1.6 创建审计数据表
启动MySQL数据库,使用mysql客户端登陆数据库,执行sql脚本audit.sql,创建mysql.audit表,用于存储审计内容。
1.7 安装审计插件
启动MySQL数据库,使用mysql客户端登陆数据库后,执行安装插件命令。如下所示:
install plugin audit soname ‘audit.so’;
安装完成后,会在指定审计文件夹下,生成.文件或/.000000。如果文件不存在,表示安装失败。
2 二进制安装
二进制动态库目前仅提供基于Linux 64位操作
系统、MySQL 5.5.15/5.5.20源码进行编译的审计插件动态库。 www.2cto.com
在mysql-audit/script文件夹下,有对应的二进制库;mysql-audit/etc文件夹下,有配置文件。配置文件audit.cnf拷贝到MYSQL_HOME/lib/plugin/下,二进制库拷贝到MySQL Server的plugin_dir指定的地址。
接下来的操作与源码安装一致,从步骤1.4开始进行下面操作即可。
3 自动化安装部署
自动化安装部署,主要针对二进制文件的安装,通过执行脚本即可实现整个安装部署过程。因此,使用自动化脚本的前提是提供的二进制文件符合应用需求。具体如下:
执行脚本的前提是已经获取mysql-audit。在此情况下,执行自动化脚本,可以安装部署成功。
具体脚本操作,可以通过执行:audit_build.sh -h 查看输入参数。举例如下:
./audit_build.sh --mysqldir=/usr/local/mysql --auditdir=/home/mysql/audit --user=root --password=”” --host=localhost --port=3306 --socket=/tmp/mysql.sock --version=5.5.20 --type=release
4 插件卸载
为了保证数据库的性能,可以卸载审计插件。使用mysql登陆数据库服务器,执行以下命令:
uninstall plugin audit;
文件输出格式
文件格式分为两种,分别为连接审计和操作审计。
1、连接审计 www.2cto.com
连接相关的审计日志信息的格式如下所示。
具体的:
[2012-06-20 15:40:39]:审计的时间。
[CONNECT]:为连接的类型;
status:为连接成功(0)或者失败(错误号)的状态;
user:为连接的用户名;
external-user:为外部连接的用户,在使用中间件或者代理服务的时候有效;
proxy-user:为代理服务的用户名;
host:表示连接的主机名;
ip:连接的ip地址;
database:表示连接的数据库名。
[2012-06-20 15:40:39] [CONNECT] status: # ; thread_id: # ; user: XXX ; external-user: XXX ; proxy-user: XXX ; host: XXX ; ip: ###.###.###.### ; database: XXX
2、操作审计
操作相关的审计日志信息的格式如下所示。操作相关的命令包括CREATE、DROP、ALTER、INSERT、UPDATE、DELETE、GRANT、REVOKE等对数据或数据库有影响的操作。以下以CREATE为例,进行详细说明。
具体的:
[2012-06-20 15:40:39]:审计的时间。
[CREATE]为操作的类型;
error_code:为操作的错误码,操作成功为0;
thread_id:执行操作的线程id;
user:执行操作的用户名;
command:操作命令的类型,是数据库内部的定义,数据相关操作一般为Quer