首页 > 数据库 >mysql审计之插件MariaDB Audit Plugin

mysql审计之插件MariaDB Audit Plugin

时间:2023-12-13 21:06:55浏览次数:36  
标签:Audit audit 插件 Plugin server file 日志 MariaDB

一、概述

审计插件是包含在 MariaDB 中的,所以需要先下载 MariaDB 然后将 server_audit.so 审计插件 copy 出来。
MariaDB 的 10.1 版本对应与 Oracle 的 MySQL 5.7 版本,这里是 MariaDB 官方下载地址 可以从链接里下载 MariaDB

我做实验使用的版本是8.0.25
MariaDB并不兼容mysql 5.7新版本与mysql 8.0以上版本

亚马逊RDS for MySQL的开发团队已经folk了MariaDB审计日志插件,并确保与MySQL 8 API兼容,以便在其RDS for MySQL数据库系列上使用。
最近,他们已经在GitHub上公开了这个项目的代码库。该插件的源代码在Github上公开发布,作为对MySQL和MariaDB用户社区的一项服务。
AWS不为该插件提供任何保证或支持。目标受众是具有C++技能的软件开发人员,他们能够独立编译和使用该插件。
这个插件不是官方的,与MySQL没有关系。

5.7以前的版本可以直接去mariadb官网下载,5.7以后的版本可以通过下面方式获取
只是插件获取方式不一样,加载和使用完全一样

二、具体配置

1、审计插件

1、下载地址
https://github.com/Vettabase/audit-plugin-for-mysql
可以根据需要选择5.7或者8.0分支
插件放在build/server_audit.so

2、安装
将server_audit.so上传到mysql的basedir下面的lib/plugin目录下
注意权限设置成755,注意用户和mysql服务启动用户一致
#导入插件到配置文件
vi my.cnf
plugin_load_add=server_audit
#或者直接命令导入插件
INSTALL PLUGIN server_audit SONAME 'server_audit.so';

3、配置完就会将操作信息写入datadir目录下的server_audit.log

2、常用参数

查看支持的插件参数
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              |
+-------------------------------+-----------------------+

具体文档可以查看mariadb官网
https://mariadb.com/kb/en/mariadb-audit-plugin/

2.1 server_audit_events

该参数设置需要保存哪些类型的 SQL 语句,可以保存的类型有:
CONNECT, QUERY, TABLE, QUERY_DDL, QUERY_DML, QUERY_DCL, QUERY_DML_NO_SELECT

如果没有设置该参数,将记录所有类型的 SQL 语句。

2.2 server_audit_excl_users

用户列表,设置后表示该列表的用户行为将不会被记录,相当于一个黑名单。

2.3 server_audit_output_type

指定日志输出类型,可为 SYSLOG 或 FILE,默认和推荐使用的模式都是 FILE 模式。

2.4 server_audit_file_path

当 server_audit_output_type=file 时,通过该参数可以设置日志存放目录,默认为 server_audit.log 表示在数据目录。

2.5 server_audit_file_rotate_now

强制日志文件轮转。

2.6 server_audit_file_rotate_size

限制日志文件的大小,默认为 1000000

2.7 server_audit_file_rotations

日志轮转的次数,默认为 0 表示不轮转。

2.8 server_audit_incl_users

用户列表,设置后表示哪些用户的操作需要被记录,优先级高于 server_audit_excl_users 参数列表。

2.9 server_audit_loc_info

记录内部信息,用户可忽略。

2.10 server_audit_logging

默认为 OFF,设置为 ON 表示打开审计日志记录。

2.11 server_audit_mode

内核人员开发调试使用的参数,用户可忽略。

2.12 server_audit_query_log_limit

限制审计日志记录中字符串长度,默认为 1024。

2.13 server_audit_syslog_facility

SYSLOG-mode 变量,设置一些 “facility”。

2.14 server_audit_syslog_ident

设置 ident 作为审计日志的一部分。

2.15 server_audit_syslog_info

将指定字符串添加到审计日志中。

2.16 server_audit_syslog_priority

SYSLOG-mode 变量,为 syslog 定义日志记录的优先级。

3、卸载插件

UNINSTALL PLUGIN 'server_audit';
如果是写到配置文件的,将相关配置删除就好

4、实验

1、配置参数
plugin_load_add=server_audit
server_audit_logging=on
server_audit_events=connect,query
server_audit_file_path=/data/mysql/mysql_audit_log
server_audit_file_rotate_size=5G
server_audit_file_rotations=10
server_audit_file_rotate_now=on

2、试验记录
第一次启动,从库连接信息会记录到主库文件server_audit.log
主从复制数据,从库不会记录
server_audit.log删除不会自动创建,可以set global server_audit_logging=off/on,重新生成
依旧可以cat /dev/null > server_audit.log 清理
日志文件有开关,可以关闭或打开
可以单独设计日志记录SQL类型

标签:Audit,audit,插件,Plugin,server,file,日志,MariaDB
From: https://blog.51cto.com/u_13236892/8805869

相关文章

  • 推荐一款IDEA插件,免费、好用
    Apipost-Helper是由Apipost推出的IDEA插件,写完接口可以进行快速调试,且支持搜索接口、根据method跳转接口,还支持生成标准的API文档,注意:这些操作都可以在代码编辑器内独立完成,非常好用!这里给大家介绍一下Apipost-Helper的安装和使用安装在IDEA编辑器插件中心输入Apipost搜索安装:Api......
  • 这款IDEA插件用着不要太爽
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、接......
  • 这款IDEA插件用着不要太爽
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、......
  • 推荐一款IDEA插件,免费、好用
    Apipost-Helper是由Apipost推出的IDEA插件,写完接口可以进行快速调试,且支持搜索接口、根据method跳转接口,还支持生成标准的API文档,注意:这些操作都可以在代码编辑器内独立完成,非常好用!这里给大家介绍一下Apipost-Helper的安装和使用安装在IDEA编辑器插件中心输入Apipost搜索安装:......
  • 开发常用网站和插件
    网站1、时间戳转换时间戳转换工具 2、git学习和练习猴子都能懂的GIT入门LearnGitBranching  3、json相关json转JAVA对象Json.cn ......
  • json to dart插件的使用
    先说一种andriodstudio中的一个插件,就叫jsonto dart,你把json文件粘贴过去,然后他可以直接生成dart对象文件,但是通常需要自定义一些配置,否则代码很难读。下面是命令的形式在Flutter开发中,你可以使用一些插件来将JSON转换为Dart类。其中一个常用的插件是dart:convert包提供的......
  • IDEA中的Postman!这款插件:免费,好用!
    Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:ApipostHelper,写完代码就可以调试接口并一键生成接口文档!而且还可以根据已有的方法帮助您快速生成url和params。更重要的是他完全免费!Apipost......
  • IDEA插件Apipost-Helper使用介绍
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、接......
  • IDEA插件Apipost-Helper使用介绍
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、......
  • IDEA中的Postman!这款插件:免费,好用!
    Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:ApipostHelper,写完代码就可以调试接口并一键生成接口文档!而且还可以根据已有的方法帮助您快速生成url和params。更重要的是他完全免费!Apipos......