MySQL 审计

http://www.cnblogs.com/erisen/p/6039512.html
https://mariadb.com/kb/en/mariadb/about-the-mariadb-audit-plugin/
https://mariadb.com/kb/en/mariadb/about-the-mariadb-audit-plugin/#new-in-version-120

由于公司业务涉及到交易,需要追踪所有MySQL操作. 业务MySQL版本 5.6.30

从MariaDB提取server_audit.so审计插件,首先安装MariaDB
--------------------------------------------------------------------------------------------
安装MariaDB  版本10.1.17 高版本不兼容mysql5.6


vim  /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB-5.5.39
baseurl=https://downloads.mariadb.com/files/MariaDB/mariadb-5.5.39/yum/rhel6-amd64/
# alternative: baseurl=http://archive.mariadb.org/mariadb-5.5.39/yum/rhel6-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1


yum安装MariaDB
yum install MariaDB-Galera-server MariaDB-client galera

rpm安装MariaDB
rpm -ivh MariaDB-*

启动
systemctl start mariadb
/etc/init.d/mysql start

卸载MariDB
yum remove MariaDB-Galera-server MariaDB-client galera
rpm -e --nodeps MariaDB-compat-10.0.28-1.el6.x86_64 MariaDB-common-10.0.28-1.el6.x86_64 MariaDB-server-10.0.28-1.el6.x86_64 MariaDB-client-10.0.28-1.el6.x86_64

MariaDB-compat-10.0.28-1.el6.x86_64
MariaDB-common-10.0.28-1.el6.x86_64
MariaDB-server-10.0.28-1.el6.x86_64
MariaDB-client-10.0.28-1.el6.x86_64
--------------------------------------------------------------------------------------------


把server_audit.so复制到Mysql /usr/lib64/mysql/plugin

查看插件目录
show global variables like '%plugin_dir%';

安装插件server_audit
install plugin server_audit soname 'server_audit.so';

卸载server_audit
uninstall plugin server_audit;

查看变量
show global variables like '%server_audit%';

修改my.cnf  永久添加
[mysqld]
plugin-load=server_audit=server_audit.so


打开审计功能:
set global server_audit_logging=on;
set global server_audit_events='connect,query';

audit_events类型
connect     连接日志连接、 断开连接和失败连接 (包括错误代码)
query       发出的查询及其结果(纯文本),包括语法或权限错误导致的查询失败
table       哪些表受查询执行的影响
query_ddl   (CREATE、ALTER、DROP)
query_dml   (SELECT、UPDATE、INSERT、DELETE)
query_dcl   (数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等))

DDL、DML和DCL的区别与理解 http://www.2cto.com/database/201610/555167.html

查看是否打开
show global variables like '%server_audit%';


添加的my.cnf  永久添加
[mysqld]
server_audit_logging=on
server_audit_events=connect,query,table


其他参数
server_audit_excl_users=valerianus,rocky   #排除用户

+-------------------------------+-----------------------+
| Variable_name                 | Value                 |
+-------------------------------+-----------------------+
| server_audit_events           | CONNECT,QUERY,TABLE   |  指定记录事件的类型,用逗号分隔多个值connect,query,table
| server_audit_excl_users       |                       |  不需要进行行为审计的用户 connect不受该设置影响
| server_audit_file_path        | server_audit.log      |  server_audit.log的默认路径在mysql的数据目录
| server_audit_file_rotate_now  | OFF                   |  on表示强制进行日志轮替
| server_audit_file_rotate_size | 1000000               |  设置server_audit.log大小达到限制后进行轮替
| server_audit_file_rotations   | 9                     |  日志文件数量限制为9个
| server_audit_incl_users       |                       |  需要进行行为审计的用户
| server_audit_logging          | ON                    |  
| server_audit_mode             | 1                     |  
| server_audit_output_type      | file                  |  输出日志和syslog分离,则需要设置为file。也可以设置为syslog,表示输出日志到syslog中
| server_audit_syslog_facility  | LOG_USER              |  
| server_audit_syslog_ident     | mysql-server_auditing |  设置ident,作为syslog记录的一部分
| server_audit_syslog_info      |                       |  定字符串加入到syslog的输出中
| server_audit_syslog_priority  | LOG_INFO              |  
+-------------------------------+-----------------------+

 

转载于:https://my.oschina.net/direnjie/blog/794096

你可能感兴趣的:(MySQL 审计)