【2016年12月4日】

    忙了好几天,没来得及看书,但总要交点货吧!!

    最近老板要审计,服务器压力很大,过去的mysql内部的审计早就关闭了,硬件审计又没上,贺大神推荐写到磁盘文件里.

1.在maridb官网下载插件,上传到mysql服务器,解压

https://mariadb.com/kb/en/mariadb/mariadb-audit-plugin/

2.登录mysql

root@localhost [(none)]>SHOW VARIABLES LIKE 'plugin_dir';
+---------------+------------------------------+
| Variable_name | Value                        |
+---------------+------------------------------+
| plugin_dir    | /usr/local/mysql/lib/plugin/ |
+---------------+------------------------------+
1 row in set (0.01 sec)


3.把插件拷贝到plugindir目录下,在mysql中安装:

INSTALL PLUGIN server_audit SONAME 'server_audit.so;
set global server_audit_events='query_ddl,query_dml';
set global server_audit_logging  = 1;


4.vi  /etc/my.cnf

 server_audit_logging
 server_audit_events=connect,query(可选)


5.重启mysql(这里可以不用重启)

6.查看审计日志

sys_root@localhost:(none) 08:41:54>SHOW VARIABLES LIKE 'server_audit%';
+-------------------------------+----------------------------------+
| Variable_name                 | Value                            |
+-------------------------------+----------------------------------+
| server_audit_events           | QUERY_DDL,QUERY_DML              | #指定记录事件的类型,可以用逗号分隔的多个值(connect,query,table),如果开启了查询缓存(query,cache)查询直接从查询缓存返回数据,将没有table记录
| server_audit_excl_users       | bbb,aaaaaa                       | #该列表的用户操作不被记录,connet不受该设置影响
| server_audit_file_path        | /data/audit_log/server_audit.log | #审计日志存放地址(默认在数据库data目录下)
| server_audit_file_rotate_now  | OFF                              | #强制日志文件轮转
| server_audit_file_rotate_size | 1000000                          | #限制日志文件的大小
| server_audit_file_rotations   | 0                                | #指定日志文件的数量,如果为0日志将从不轮转
| server_audit_incl_users       |                                  | #指定哪些用户的活动将记录,connet不受影响,改变量比server_audit_excl_users优先级高
| server_audit_loc_info         |                                  |
| server_audit_logging          | ON                               | #表示开启审计日志服务
| server_audit_mode             | 0                                | #表示版本,用于开发测试
| server_audit_output_type      | file                             | #日志输出形式以file,syslog # https://www.oschina.net/question/12_127238
| server_audit_query_log_limit  | 1024                             |
| server_audit_syslog_facility  | LOG_USER                         | #默认Log_user,指定facility
| server_audit_syslog_ident     | mysql-server_auditing            | #指定ident,作为每个syslog记录的一部分
| server_audit_syslog_info      |                                  | #指定的info字符串将添加到syslog记录
| server_audit_syslog_priority  | LOG_INFO                         | #定义记录日志的syslogd priority
+-------------------------------+----------------------------------+
16 rows in set (0.00 sec)


server_audit_events、server_audit_logging等参数均为全局动态参数,可以直接在数据库更改。


7.这是贺春旸大神提供的