前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Mysql 开源审计插件有哪些

Mysql 开源审计插件有哪些

作者头像
Linux运维技术之路
发布2025-02-18 20:57:12
发布2025-02-18 20:57:12
4300
代码可运行
举报
文章被收录于专栏:Linux运维技术之路
运行总次数:0
代码可运行

MySQL 开源的审计插件主要用于记录数据库的操作行为,如查询、登录、权限变更等,以便进行安全审计、合规性检查和问题排查。以下是几个常见的开源 MySQL 审计插件:

一、MariaDB Audit Plugin

简介: MariaDB Audit Plugin 是一个功能强大的审计插件,最初由 MariaDB 开发,但也可以用于 MySQL 社区版和企业版。

功能特点

  • • 支持记录连接、查询、表访问等操作。
  • • 支持将日志输出到文件或 syslog。
  • • 可以过滤特定用户、数据库或表的操作。
  • • 高性能,对数据库性能影响较小。

安装方式

代码语言:javascript
代码运行次数:0
复制
# 下载插件(确保与 MySQL 版本兼容)
wget https://downloads.mariadb.com/Audit-Plugin/audit-plugin-VERSION.tar.gz

# 解压并复制插件文件到 MySQL 插件目录
tar -xzf audit-plugin-VERSION.tar.gz
cp server_audit.so /usr/lib/mysql/plugin/

# 安装插件
INSTALL PLUGIN server_audit SONAME 'server_audit.so';

配置参数

  • server_audit_logging=ON:启用审计日志。
  • server_audit_events=CONNECT,QUERY,TABLE:指定需要记录的事件类型。
  • server_audit_output_type=FILE:设置日志输出目标(文件或 syslog)。

文档链接: MariaDB Audit Plugin Documentation


二、 Percona Audit Log Plugin

简介: Percona 提供了一个基于 MySQL 的审计插件,适用于 Percona Server 和 MySQL 社区版。

功能特点

  • • 记录所有 SQL 查询和连接信息。
  • • 支持 JSON 格式的日志输出,便于后续分析。
  • • 可以过滤特定用户或数据库的操作。

安装方式

代码语言:javascript
代码运行次数:0
复制
# 安装插件
INSTALL PLUGIN audit_log SONAME 'audit_log.so';

# 启用审计日志
SET GLOBAL audit_log_policy=ALL;

配置参数

  • audit_log_format=JSON:设置日志格式为 JSON。
  • audit_log_policy=ALL:记录所有操作(包括查询和连接)。
  • audit_log_file=/var/log/mysql/audit.log:指定日志文件路径。

文档链接: Percona Audit Log Plugin Documentation


三、 McAfee MySQL Audit Plugin

简介: McAfee 开发的 MySQL 审计插件是一个开源项目,支持 MySQL 和 Percona Server。

功能特点

  • • 支持记录连接、查询、表访问等操作。
  • • 日志格式灵活,支持 JSON 或自定义格式。
  • • 性能开销较低,适合高并发场景。

安装方式

代码语言:javascript
代码运行次数:0
复制
# 下载插件
git clone https://github.com/mcafee/mysql-audit.git

# 编译插件
cd mysql-audit
make

# 复制插件文件到 MySQL 插件目录
cp libaudit_plugin.so /usr/lib/mysql/plugin/

# 安装插件
INSTALL PLUGIN audit SONAME 'libaudit_plugin.so';

配置参数

  • audit_json_file=1:启用 JSON 格式的日志输出。
  • audit_record_cmds='select,insert,update,delete':指定需要记录的命令类型。
  • audit_log_file=/var/log/mysql/audit.log:指定日志文件路径。

文档链接: McAfee MySQL Audit Plugin GitHub


四、 MySQL Enterprise Audit Plugin

简介: MySQL 企业版自带的审计插件,虽然不是完全开源的,但可以通过试用版或社区资源获取。

功能特点

  • • 记录所有数据库操作,包括连接、查询、权限变更等。
  • • 支持 XML 格式的日志输出。
  • • 提供详细的审计报告。

安装方式

代码语言:javascript
代码运行次数:0
复制
# 安装插件
INSTALL PLUGIN audit_log SONAME 'audit_log.so';

# 启用审计日志
SET GLOBAL audit_log_policy=ALL;

注意: 此插件仅适用于 MySQL 企业版,社区版用户需要寻找其他替代方案。

文档链接: MySQL Enterprise Audit Plugin Documentation


5. Custom Open Source Solutions

如果现有插件无法满足需求,可以考虑使用以下方法实现自定义审计功能:

General Query Log: 启用 MySQL 的通用查询日志,记录所有查询操作。

代码语言:javascript
代码运行次数:0
复制
SET GLOBAL general_log = ON;
SET GLOBAL log_output = 'TABLE'; -- 或 'FILE'
  • • 优点:无需额外插件。
  • • 缺点:性能开销较大,日志内容较冗长。

ProxySQL: 使用 ProxySQL 作为中间层,记录所有通过代理的查询。

  • • 优点:支持复杂的查询过滤和日志格式化。
  • • 缺点:需要额外部署和维护。

对比表格

插件名称

适用版本

日志格式

性能开销

开源状态

推荐场景

MariaDB Audit Plugin

MySQL、MariaDB

文件、syslog

较低

开源

需要高性能审计的生产环境

Percona Audit Log Plugin

MySQL、Percona Server

JSON

中等

开源

需要 JSON 格式日志的场景

McAfee MySQL Audit Plugin

MySQL、Percona Server

JSON、自定义

较低

开源

高并发场景下的审计需求

MySQL Enterprise Audit

MySQL 企业版

XML

中等

商业版

企业级审计需求

General Query Log

所有 MySQL 版本

文件、表

较高

内置功能

简单审计需求,短期启用


总结

对于开源 MySQL 用户,推荐优先选择 MariaDB Audit PluginMcAfee MySQL Audit Plugin,因为它们功能强大且性能开销较低。如果需要更灵活的日志格式,可以选择 Percona Audit Log Plugin

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-02-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux运维技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、MariaDB Audit Plugin
  • 二、 Percona Audit Log Plugin
  • 三、 McAfee MySQL Audit Plugin
  • 四、 MySQL Enterprise Audit Plugin
    • 5. Custom Open Source Solutions
    • 对比表格
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档