博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL 添加审计功能
阅读量:6853 次
发布时间:2019-06-26

本文共 2824 字,大约阅读时间需要 9 分钟。

MySQL社区版没有自带的设计功能或插件。调研发现MariaDB的audit plugin 同样适用于MySQL,支持更细粒度的审计,比如只审计DDL操作,满足我们的需求。因为最近测试环境的某表结构经常性的被变更且数据被清空的情况,所以引入MariaDB的插件对DDL进行审计

查看MySQL的插件路径

mysql> show global variables like '%plugin%';+---------------+------------------------------+| Variable_name | Value                        |+---------------+------------------------------+| plugin_dir    | /usr/local/mysql/lib/plugin/ |+---------------+------------------------------+1 row in set (0.00 sec)mysql> select version();+------------+| version()  |+------------+| 5.6.33-log |+------------+1 row in set (0.00 sec)

我选择下载的插件版本文件为 server_audit-1.4.0.tar.gz

解压后将插件文件server_audit.so拷贝到MySQL的插件文件目录下

安装

mysql> INSTALL PLUGIN server_audit SONAME 'server_audit.so';Query OK, 0 rows affected (0.02 sec) #在线安装加载插件重启后会失效,可以在配置文件中配置 [mysqld] ... plugin_load=server_audit=server_audit.so

配置审计项

# 安装完之后相关的配置项有SHOW GLOBAL VARIABLES LIKE 'server_audit%';+-------------------------------+-----------------------+| Variable_name                 | Value                 |+-------------------------------+-----------------------+| server_audit_events           | CONNECT,QUERY,TABLE   || server_audit_excl_users       |                       || server_audit_file_path        | server_audit.log      || server_audit_file_rotate_now  | OFF                   || server_audit_file_rotate_size | 1000000               || server_audit_file_rotations   | 9                     || server_audit_incl_users       |                       || server_audit_logging          | ON                    || server_audit_mode             | 0                     || server_audit_output_type      | file                  || server_audit_query_log_limit  | 1024                  || server_audit_syslog_facility  | LOG_USER              || server_audit_syslog_ident     | mysql-server_auditing || server_audit_syslog_info      |                       || server_audit_syslog_priority  | LOG_INFO              |+-------------------------------+-----------------------+

根据我们的需求设置

mysql> set global server_audit_events='query_ddl,table';        Query OK, 0 rows affected (0.00 sec)mysql> set global server_audit_logging=on;Query OK, 0 rows affected (0.00 sec)

设置完之后关于ddl的审计日志如

20180416 11:25:22,mysql-5.6.dev.yz,root,localhost,34950852,21554,QUERY,test,'truncate table t1',0

关于server_audit_events可选的参数有connect:会记录所有的连接,包括失败的以及关闭连接的日志,如日志中记录的,但是对我们来说不关心这些

[root@mysql-5.6.dev.yz 3306_develop]# tailf server_audit.log             20180416 11:22:42,mysql-5.6.dev.yz,root,10.211.253.104,34950731,0,CONNECT,test,,020180416 11:22:48,mysql-5.6.dev.yz,admin,10.211.253.153,34950655,0,DISCONNECT,test,,020180416 11:22:48,mysql-5.6.dev.yz,admin,10.211.253.153,34950732,0,CONNECT,test,,020180416 11:22:49,mysql-5.6.dev.yz,admin,10.211.253.101,34950664,0,DISCONNECT,test,,0

转载于:https://www.cnblogs.com/Bccd/p/8855452.html

你可能感兴趣的文章
包冲突getJspApplicationContext
查看>>
Webrtc入门——基于阿里云ubuntu 最新webrtc Android平台编译详细说明
查看>>
prepareCall方法执行存储过程
查看>>
深入学习jQuery节点关系
查看>>
在浏览器中输入网址后的流程
查看>>
鼠标移动效果
查看>>
源码-hadoop1.1.0-core-org.apache.hadoop.classification
查看>>
创建4个线程,两个对j加一,两个对j减一(j两同两内)
查看>>
Make body have 100% of the browser height
查看>>
linux 服务器安装php5.6
查看>>
python 函数,闭包
查看>>
组合数据类型练习,英文词频统计实例上
查看>>
CentOS开启FTP及配置用户
查看>>
[LeetCode] Remove Duplicates from Sorted Array II
查看>>
【深度学习笔记1】如何建立和确定模型正确性?如何优化模型?
查看>>
Collection集合家族
查看>>
RtlWerpReportException failed with status code :-1073741823
查看>>
5-2 类型转换 @SuppressWarnings("unchecked")
查看>>
实验 5 编写、调试具有多个段的程序
查看>>
Verilog代码可移植性设计(转自特权同学博客http://bbs.ednchina.com/BLOG_ARTICLE_1983188.HTM)...
查看>>