`
CtripMySQLDBA
  • 浏览: 57288 次
  • 来自: 上海
社区版块
存档分类
最新评论

MySQL Audit Plugin的简单应用

阅读更多

基于MySQL服务器安全性需求,我们需要部署一套安全审计机制,以便当服务器出现用户活跃访问数据库、用户修改表结构、大批量数据修改等等危险操作时,我们可以进行实时的监控,报警。对于事后问题处理,有据可查。

MySQL5.5之前,MySQL本身缺少一套的对服务器操作的审计机制,对于非法或者危险的操作、错误捕捉、登录审计尚不能很好的支持。当出现drop了一个表或者不慎不带where的删除表数据等危险操作时,应该被明确的记录下来。

MySQL5.5里,添加了额外的流程来对这些我们所关心的地方进行事件捕获;然后将捕获到的事件传递给Audit Plugin;而Audit Plugin所要做的,就是对这些事件进行判别,并做必要的反应,比如记录到log或发送一个报警。

 

Audit Plugin基本工作流程:



 

Audit Plugin内部实现:

sql/sql_audit.cc 该文件定义了audit插件的接口函数;

sql/sql_audit.h 该文件申明函数,并定义了函数mysql_audit_general_log,在触发audit时,首先调用的就是该函数;

audit_null.c 模版程序,给出了最基础的audit插件所需要定义的接口,程序audit_null.c中包括了两个必备头文件mysql/plugin.hmysql/plugin_audit.h

新增加的审计插件,其实现思想是在内核代码的不同位置增加相应的接口函数,具体实现在sql_audit.ccsql_audit.h文件。在/plugin/audit_null/文件夹下的样本程序文件audit_null.c(对该文件进行编译之后生成so文件即是我们所需的插件,MySQL5.5.23模版so文件为adt_null.so),插件名字为NULL_AUDIT


在模板程序audit_null.c 的基础上,我们编辑了符合自己业务需求的程序,主要对audit_null_notify函数进行了相应更改,能够实现通过配置文件读取条件,对来自指定用户和访问IP的数据库操作情况进行记录,包括操作时间、用户名、操作语句记录、影响行数。

 

配置文件形式如下:

[log]

file = /var/lib/mysql/my_audit.log

[audit1]

user = un_

[audit2]

user = us_

[audit3]

user = uapp_

ip = 192.168.XX

 

用sysbench工具对审计插件进行性能测试后发现,当安装了自定义审计插件后,如果完全没有需要审计的内容,则几乎没有性能损失,约为0.1%;如果所有的操作都需要进行记录,则性能会下降30%左右,这些性能损失应该主要来自于IO消耗。

 

后一种场景的测试信息如下:

 

测试服务器

vms00XXX (5.5.21)

硬件配置

CPU 2核 内存 4G

表数据量

100

并发线程数

200

测试时间

10分钟*3

测试帐号

符合审计条件

 

 

queries performed

未使用插件

使用插件

降幅

read

1876910

1287524

31.40%

write

670325

459830

31.40%

other

268130

183932

31.40%

total

2815365

1931286

31.40%

transactions

134065 (223.37 per sec.)

 91966  (153.23 per sec.)

31.40%

deadlocks

0      (0.00 per sec.)

0      (0.00 per sec.)

31.40%

read/write requests

2547235 (4244.01 per sec.)

1747354 (2911.32 per sec.)

31.40%

other operations

268130 (446.74 per sec.)

183932 (306.45 per sec.)

31.40%

 

  • 大小: 9.2 KB
1
0
分享到:
评论

相关推荐

    MySQL审计工具AuditPlugin安装使用

    ### MySQL Audit Plugin 安装与使用详解 #### 一、概述 MySQL Audit Plugin 是一个用于监控和记录MySQL数据库活动的强大工具。它可以帮助数据库管理员(DBA)监控查询性能、跟踪访问模式以及实现合规性要求等。本文将...

    auditplugin-mysql5.7

    日志安全审计插件,原官网已经无法下载 mysql 5.7社区版安全审计插件audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64.zip mysql 5.7社区版安全审计插件audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64.zip mysql 5.7...

    audit-plugin-mysql-5.7-1.1.7 for Linux

    mysql 5.7安全审计插件 Linux X86-X64通用...audit-plugin-mysql-5.7-1.1.7 for Linux 等保开启审计插件,貌似官网找不到,发出来共享. 缺点:日志信息比较大,对性能影响大。 优点:对每一时刻每一用户的操作都有记录。

    audit-plugin-mysql-5.7-1.1.4-725-linux-x86_64.zip

    "audit-plugin-mysql-5.7-1.1.4-725-linux-x86_64.zip"这个压缩包文件包含了针对MySQL 5.7版本的审计插件,版本号为1.1.4-725,适用于Linux操作系统,且是64位架构。在本篇中,我们将深入探讨MySQL审计插件的安装、...

    audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64.zip

    "audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64.zip" 文件是一个针对Linux 64位系统的特定版本审计插件,适用于MySQL 5.7版本。 审计插件的主要功能包括: 1. **活动记录**:审计插件能够详细记录所有SQL语句,...

    audit-plugin-mysql-5.7-1.1.11-985-linux-x86_64

    这个名为 "audit-plugin-mysql-5.7-1.1.11-985-linux-x86_64" 的压缩包包含了一个针对 MySQL 5.7 版本的审计解决方案,特别设计用来记录和分析数据库的各种操作,如查询、登录尝试、权限变更等。 审计插件的主要...

    MariaDB Audit Plugin Introduction V1.3

    为满足这一需求,MariaDB 的开发者们——Monty Program AB 和 SkySQL Ab,共同开发了 MariaDB 审计插件(MariaDB Audit Plugin)。虽然该插件主要针对 MariaDB 设计了一些独特的特性,但同样适用于 MySQL,提供了...

    mysql8.0审计插件Mcafee安装详解

    在生产环境中,官方建议使用第二种方式,即在 my.cnf 文件中的 [mysqld] 下添加 plugin-load=AUDIT=libaudit_plugin.so。另外,Mcafee 插件支持其他配置参数,可以一并放到 my.cnf 文件中。 安装 Mcafee 审计插件...

    mysql_windows_audit_plugin:MySQL 服务器的审计插件,将连接审计事件写入 Windows 事件日志

    mysql_windows_audit_plugin mysql_windows_audit_plugin是 MySQL 服务器的审计插件,它将连接和断开连接事件记录到 Windows 事件日志。 此插件仅在 MySQL Server 安装在 Microsoft Windows 操作系统中时有效。 按照...

    mysql5.7 审计插件及安装步骤

    MySQL 审计插件(audit_log_plugin)提供了对数据库服务器事件的详细日志记录功能。这些事件包括用户连接、断开连接、SQL语句执行、权限变更等。通过审计日志,管理员可以追踪潜在的安全风险,优化查询性能,以及...

    window和liunx系统的mysql5.7审计插件

    (适用于windows和linux包括server_audit.dll和server_audit.so两个文件)在进行MySQL插件管理时,你需要首先将下载的插件压缩包解压,并将其复制到MySQL服务器的lib/plugin目录下。这个lib/plugin目录通常是MySQL...

    audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64

    《MySQL审计插件在Linux环境中的应用与配置详解》 MySQL是全球广泛使用的开源关系型数据库管理系统,其安全性和稳定性深受用户信赖。在数据库管理中,审计功能是至关重要的,它能够记录数据库的所有操作,帮助管理...

    mysql8.0审计日志插件mariaDb安装失败记录

    MySQL 8.0自身提供了一个内置的审计插件(`audit_log_plugin`),可以直接启用而不需要依赖外部插件。使用`INSTALL PLUGIN audit_log_plugin SONAME 'audit_log.so'`命令可以安装。内置审计日志插件可能更易于配置且...

    ARM64架构(aarch64)MySQL8 审计插件 - audit-log.so

    install plugin audit_log soname 'audit_log.so'; show variables LIKE 'audit%';

    server_audit.zip

    在MySQL或MariaDB服务器上启用审计插件,首先需要加载动态库`server_audit.so`,这个文件通常位于MySQL的lib目录下。然后在MySQL的配置文件(如my.cnf)中添加以下行: ```sql plugin-load-add=audit_log.so ``` ...

    server_audit.rar

    基本上,MariaDB Audit Plugin的目的是记录服务器的活动。对于每个客户端会话,它记录谁连接到服务器(即用户名和主机),执行了哪些查询,访问了哪些表以及更改了服务器变量。此信息存储在循环日志文件中,或者可以...

    MySQL 5.7.34日志审计插件

    MySQL 版本小于5.7.34日志审计插件 .MariaDB的server_audit插件. 由于MySQL的社区版不支持审计系统,可通过第三方插件实现,此次采用MariaDB的server_audit插件来记录{时间,节点,用户,源IP,事件类型,库,语句,...

    Linux mysql-5.7.12

    6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。 7.提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。 ...

    Linux-mysql安装.zip

    在IT领域,数据库管理系统(DBMS)是至关重要的组成部分,MySQL作为开源、免费的关系型数据库管理系统,被广泛应用于各种规模的项目中。本教程将详细讲解如何在Linux系统上安装MySQL 5.7.24版本,这个过程适用于...

    MySQL审计插件:守护数据库安全的哨兵

    INSTALL PLUGIN mysql_audit SONAME 'mysql_audit.so'; ``` ##### 配置审计插件 在 MySQL 的配置文件 `my.cnf` 中启用审计插件。具体配置如下: ```ini [mysqld] plugins-load-add=mysql_audit.so ``` #### 使用...

Global site tag (gtag.js) - Google Analytics