午后红茶 2012-08-09
目的
基于之前设计开发的mysql审计插件,以及《MySQL审计插件安装使用说明文档》的内容介绍,对完善后的mysql审计插件进行补充和说明。主要对新增内容进行详细说明,进一步完善审计插件的功能。
新增内容
针对之前版本中存在的不足,功能不够完善的问题,对MySQL审计插件进行进一步的开发和完善。新增内容主要有:
1、增加审计数据库、数据表功能。
之前版本中没有实现该功能,在当前版本中,将审计选项中audit_dbs、audit_tables的处理实现。可以审计某些数据库,或者某些数据表,有利于针对不同应用系统的特殊应用。从而配合审计粒度,对审计内容进行进一步的细化和定制。
2、增加忽略审计的用户、数据库、数据表功能。
鉴于审计应用的特殊性,添加忽略的审计用户、数据库、数据表功能。可以实现忽略某个或某些用户的操作记录;忽略某个或某些数据库的操作记录;忽略某个表的操作记录。这样可以使得当审计的内容较多,而审计中需要剔除某些不必要的审计内容的情况下,这些参数可以有效简化审计的选项配置。
增加的配置文件的选项:
选项 | 功能 |
ignore_users | 忽略的用户 |
ignore_dbs | 忽略的数据库 |
ignore_tables | 忽略的数据表 |
选项的设置格式在配置文件中给出了具体的说明,类似audit_users、audit_dbs、audit_tables选项。
在添加忽略的审计用户、数据库、数据表与审计对象发生冲突时,将按照忽略优先的原则进行。例如:audit_dbs = important、audit_tables = test.test、ignore_dbs = test,ignore_tables = important.test,那么审计的内容会首先忽略important.test表的所有操作,而审计test.test数据表的所有操作,然后忽略test数据库的所有操作,审计important数据看的操作。
3、增加审计操作的数据库信息。
由于操作的sql语句中几乎不会直接写操作的数据库,而仅靠sql语句不能有效的辨识操作的数据库。在存在不同数据库中有相同数据表的情况下,数据库审计不能有效的跟踪审计内容。增加数据库信息,可以有效的提高sql审核的内容。
文件输出格式
文件格式分为两种,分别为连接审计和操作审计。
1、连接审计
连接相关的审计日志信息的格式如下所示。
具体的:
[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