window10系统下mysql5.7安装审计插件(亲测有用)

 更新时间:2022年09月15日 11:40:43   作者:奇怪的守护神  
mysql有没oracle这样的审计功能,突然想在mysql做审计怎么办,下面带大家从零开始给mysql安装审计插件,亲测绝对可用哦,需要的朋友可以参考下

前言

mysql有没oracle这样的审计功能?突然想在mysql做审计怎么办?下面带大家从零开始给mysql安装审计插件,亲测绝对可用哦!
本教程虽然是在windows里操作,但在linux系统里也是同理,对应的插件和配置修改,都是类似的。

a、企业版 MySQL Enterprise Edition(收费)自带AUDIT审计功能。

b、社区版 MySQL Community Server(免费)需要自己下载插件。

所以,免费的社区版的使用者们,跟着下面教程获取到审计功能吧。

1、下载MariaDB拿到对应的审计插件

tip:这一步本来就是为了获得审计插件的,不想下载MariaDB那么麻烦,直接本人保存好的审计插件-server_audit.dll文件(下载地址),
可跳过第1步、第2步,去到第3步,直接拷贝到数据库所在目录的\lib\plugin下 。

下载地址:http://xiazai.jb51.net/202209/yuanma/server_audit_jb51.rar

版本情况

window10

mysql5.7.36

mysql与MariaDB 的版本对应很重要。mysql5.7.36版本,选择MariaDB 的版本是5.5.57下载路径

https://archive.mariadb.org//mariadb-5.5.68/winx64-packages/mariadb-5.5.68-winx64.msi

MariaDB

2、安装MariaDB审计插件

MariaDB安装

MariaDB安装

改下端口,其他都是下一步。

3、配置审计插件到mysql

1、登入mysql执行如下命令,可以查看mysql数据对应的插件文件存放位置。

SHOW GLOBAL VARIABLES LIKE 'plugin_dir';

image-20220824192857084

2、从MariaDB的lib\plugin目录拷贝server_audit.dll:

image-20220824191659348

复制到mysql对应的 lib\plugin目录下:

image-20220824191734173

3、mysql里执行如下命令安装审计插件:

INSTALL PLUGIN server_audit SONAME 'server_audit.dll';

4、安装成功,通过如下命令可以查看初始化参数配置。

 show variables like '%audit%';

5、执行如下命令开启mysql审计功能

#备注:指定哪些操作被记录到日志文件中

set global server_audit_events='CONNECT,QUERY,TABLE,QUERY_DDL';
#备注:开启审计功能
set global server_audit_logging=on;

#备注:默认存放路径,可以不写,默认到data文件下
#set global server_audit_file_path =/data/mysql/auditlogs/
#备注:设置文件大小
set global server_audit_file_rotate_size=200000000;

#指定日志文件的数量,如果为0日志将从不轮转
set global server_audit_file_rotations=200;

#强制日志文件轮转
set global server_audit_file_rotate_now=ON;

执行完上述命令,

show variables like '%audit%';

可查看审计配置说明

6、永久生效配置,修改配置文件my.ini

[mysqld]
#备注:防止server_audit 插件被卸载

server_audit=FORCE_PLUS_PERMANENT

#备注:指定哪些操作被记录到日志文件中
server_audit_events='CONNECT,QUERY,TABLE,QUERY_DDL'
server_audit_logging=on
server_audit_file_rotate_size=200000001
server_audit_file_rotations=200
server_audit_file_rotate_now=ON

然后重启mysql

net stop mysql
net start mysql

4、测试审计插件

可到data文件下查看日志文件server_audit.log。

image-20220824192338125

可以看到刚才操作的日志都有了:

image-20220824192634868

5、卸载审计插件

 #如果设置了防卸载,需要先去掉该配置 server_audit = FORCE_PLUS_PERMANENT
 UNINSTALL PLUGIN server_audit;
 show variables like '%audit%';

6、审计插件server audit参数说明

server_audit_events :指定记录事件的类型,可以用逗号分隔的多个值
server_audit_excl_users : 该列表的用户[行为]将不记录,connect信息将不受该设置影响
server_audit_file_path :使用该变量设置存储日志的文件,可以指定目录,默认存放在数据目录的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 :
server_audit_logging :启动或关闭审计ON/OFF
server_audit_mode :标识版本,用于开发测试
server_audit_output_type :指定日志输出类型,可为SYSLOG或FILE,当为syslog时记录到/var/log/messages
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

省略值全部事件类型都会记录到审计日志中,可选择事件类型才记录。

如 server_audit_events = query,table,query_ddl,query_dml

事件类型

CONNECT:连接、断开连接和失败的连接,包括错误代码

QUERY:以纯文本形式执行的查询及其结果,包括由于语法或权限错误而失败的查询

TABLE:受查询执行影响的表

QUERY_DDL:与QUERY相同,但只筛选DDL类型的查询(create、alter、drop、rename和truncate语句,create/drop[procedure/function/user]和rename user除外(它们不是DDL)

QUERY_DML:与QUERY相同,但只筛选DML类型的查询(do、call、load data/xml、delete、insert、select、update、handler和replace语句)

QUERY_DCL:与QUERY相同,但只筛选DCL类型的查询(create user、drop user、rename user、grant、revoke和set password语句)

QUERY_DML_NO_SELECT:与QUERY_DML相同,但不记录SELECT查询。(从1.4.4版开始)(do、call、load data/xml、delete、insert、update、handler和replace语句)

7、注意

  • 如果开启了查询缓存(query cache),查询直接从查询缓存返回数据,将没有table记录
  • 由于除了DDL和DML之外还有其他类型的查询,因此将查询DDL和查询DML选项一起使用并不等同于使用查询。从Audit插件的1.3.0版开始,有用于记录查询的DCL类型(例如GRANT和REVOKE语句)的QUERY_DCL选项。在同一版本中,添加了server_audit_query_log_limit变量,以便能够设置日志记录的长度。以前,由于查询字符串较长,日志条目将被截断。
  • 卸载审计插件
  • 如my.cnf 有相关配置,先清空重启再卸载。

到此这篇关于window10系统下mysql5.7安装审计插件的文章就介绍到这了,更多相关mysql5.7安装审计插件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql日常锁表之flush_tables详解

    mysql日常锁表之flush_tables详解

    Flushtables和Flushtableswithreadlock是MySQL中的两个命令,用于关闭表对象和清空查询缓存,它们会等待所有正在运行的SQL请求执行结束,如果请求操作的表集合为{tables},则会阻塞其他会话对{tables}表上的所有操作,包括查询和写操作
    2024-11-11
  • 解析mysql与Oracle update的区别

    解析mysql与Oracle update的区别

    本篇文章是对mysql与Oracle update的区别进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • MySQL修改root密码的4种方法(小结)

    MySQL修改root密码的4种方法(小结)

    这篇文章主要介绍了MySQL修改root密码的4种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • MySQL删除binlog日志文件的三种实现方式

    MySQL删除binlog日志文件的三种实现方式

    本文介绍了三种删除MySQL binlog日志文件的方法,包含手动删除、使用SQL命令删除和设置自动清理,具有一定的参考价值,感兴趣的可以了解一下
    2025-02-02
  • MySQL中distinct语句的基本原理及其与group by的比较

    MySQL中distinct语句的基本原理及其与group by的比较

    这篇文章主要介绍了MySQL中distinct语句的基本原理及其与group by的比较,一般情况下来说group by和distinct的实现原理相近且性能稍好,需要的朋友可以参考下
    2016-01-01
  • MySQL通透详解架构设计

    MySQL通透详解架构设计

    这篇文章主要介绍了MySQL架构设计相关基础与原则,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2022-02-02
  • windows环境中mysql忘记root密码的解决方法详解

    windows环境中mysql忘记root密码的解决方法详解

    本篇文章是对windows环境中mysql忘记root密码的解决方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • MySQL 存储过程的基本用法介绍

    MySQL 存储过程的基本用法介绍

    我们大家都知道MySQL 存储过程是从 MySQL 5.0 开始逐渐增加新的功能。存储过程在实际应用中也是优点大于缺点。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程。
    2010-12-12
  • MySql 设置表格字段key中的值

    MySql 设置表格字段key中的值

    本文主要介绍了MySql 设置表格字段key中的值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • CentOs7.x安装Mysql的详细教程

    CentOs7.x安装Mysql的详细教程

    CentOS7的yum源中默认好像是没有MySQL的。为了解决这个问题,我们要先下载mysql的repo源。下面通过本教程给大家详细介绍CentOs7.x安装Mysql的方法,一起看看吧
    2016-12-12

最新评论