----可以找出谁动过DB下过什么指令....等,是谁DROP.DELETE.TRUNCATE了DB----
先查询Mysql版本
mysql -V
相关讯息如下
mysql Ver 14.14 Distrib 5.6.41, for linux-glibc2.12 (x86_64) using EditLine wrapper
进入Mysql执行,查询确认路径
mysql>show variables like "%plugin%";+——————————————+——————————————————————————————+| Variable_name| Value |+——————————————+——————————————————————————————+| plugin_dir | /usr/local/mysql/lib/plugin/ |+——————————————+——————————————————————————————+
查找一下路径内有无server_audit.so的文件
find / -name "server_audit.so"
有就忽略下载方式经档案移动到,Mysql查询到的路径下
mv "find查询后显示的路径" /usr/local/mysql/lib/plugin/
没有就下载server_audit.so到/usr/local/mysql/lib/plugin/下的路径
https://downloads.mariadb.org/ ←可查询适合的版本
下载方式1.直接LINUX下载,
※档案有点大,里面东西很多,因为找不到单独的档案!解压之后把要的CP或MV到路径下,其他的东西就可以删了
wget https://download.mariadb.org/f/mariadb-10.2.19/bintar-linux-x86_64/mariadb-10.2.19-linux-x86_64.tar.gz
解压缩
tar zxvf mariadb-10.2.19-linux-x86_64.tar.gz
因下载在我放在tmp下所以从tmp移到/usr/local/mysql/lib/plugin/
*档案正常在mariadb-10.2.19-linux-x86_64/lib/plugin/server_audit.so
find / -name "server_audit.so"mv /tmp/mariadb-10.2.19-linux-x86_64/lib/plugin/server_audit.so /usr/local/mysql/lib/plugin/
下载方式2.存在自己的电脑后,再解压,直接COPY- server_audit.so 档再移到系统内
并增加server_audit.so执行权限
chmod +x server_audit.so
接下来进行设定及排程,进入Mysql安装server_audit.so插件
mysql>INSTALL PLUGIN server_audit SONAME "server_audit.so";
查看配置内容
mysql>show variables like “%audit%";+--------------------------------+-----------------------+ |Variable_name | Value |+--------------------------------+-----------------------+| server_audit_events | | | 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_loc_info | | | server_audit_logging | OFF | | server_audit_mode | 1 | | 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 |+--------------------------------+-----------------------+
server_audit_events=指定记录事件的类型,可以用逗号分隔的多个值(connect,query,table),如果开启了查询缓存(query cache),查询直接从查询缓存返回数据,将没有table记录在文件里 Logging events 一节提到的可设定的 Type,说明如下
-CONNECT —–连接,断开连接和连接失败-包括错误代码
-QUERY —–执行的查询及其结果以纯文本形式显示,包括由于语法或权限错误导致的查询失败
-TABLE —–哪些 Tables 因此 QUERY 而受影响
-QUERY_DDL —–DDL 的 Query,是 QUERY的子集合 过滤DDL类型的查询(CREATE、ALTER和DROP、RENAME以及TRUNCATE语句-除了CREATE/DROP [PROCEDURE / FUNCTION / USER]和RENAME USE
-QUERY_DML —–DML 的 Query,是 QUERY的子集合 过滤DML类型的查询(DO、CALL、LOAD DATA/XML、DELETE、INSERT、SELECT、UPDATE、HANDLER和REPLACE语句)
-QUERY_DML_NO_SELECT —– 与QUERY_DML同但不记录SELECT查询相同。(因为版本1.4.4)(DO、CALL、LOAD DATA/XML、DELETE、INSERT、UPDATE、HANDLER、REPLACE )
-QUERY_DCL ——DCL 的 Query,是 QUERY的子集 过滤DCL型查询(CREATE USER、DROP USER、RENAME USER、GRANT、REVOKE和SET PASSWORD语句)
进入Mysql执行:变更全局变量
若伺服器已启动,不便重开故可直接于Mysql下执行!
亦可至my.cnf设置,但需重启!
mysql>set global server_audit_events="CONNECT,QUERY,TABLE,QUERY_DDL,QUERY_DML,QUERY_DCL";mysql>set global server_audit_file_path ="/data/audit_log/server_audit.log";mysql>set global server_audit_file_rotate_size=1073741824;mysql>set global server_audit_file_rotations=0;mysql>set global server_audit_output_type=file;
接着建议先查看变量是否有更动
mysql>show variables like "server_audit%";
确定指定的变量都改变了之后,再将审计功能启动
mysql>set global server_audit_logging=on;
可再次查看是否启动成功 ,启动成功就可以到指定资料夹查看使用者操作记录!