下载安装Mysql审计功能server_audit.so

----可以找出谁动过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语句)

server_audit_excl_users=该列表的用户行为将不记录,connect将不受该设置影响server_audit_file_path=如server_audit_output_type为FILE,使用该变量设置存储日誌的文件,可以指定目录,默认存放在数据目录的server_audit.log文件中server_audit_file_rotate_now=强制日志文件轮转,切新档的意思server_audit_file_rotate_size=限制日志文件的大小server_audit_file_rotations=指定日誌文件的数量,如果为0日誌将从不轮转server_audit_incl_users=指定哪些用户的活动将记录,connect将不受此变量影响,该变量比server_audit_excl_users优先级高server_audit_loc_info=指定的info字符串将添加到syslog记录server_audit_logging=启动或关闭计功能server_audit_mode=标识版本,用于开发测试server_audit_output_type=指定日志输出类型,可为SYSLOG或FILEserver_audit_query_log_limit=日志的大小server_audit_syslog_facility=默认为LOG_USER,指定facilityserver_audit_syslog_ident=设置ident,作为每个syslog记录的一部分server_audit_syslog_info=指定的info字符串将添加到syslog记录server_audit_syslog_priority=定义记录日志的syslogd priority

进入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;  

可再次查看是否启动成功 ,启动成功就可以到指定资料夹查看使用者操作记录!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章