首页 > 数据库 >MySQL 8 社区版安装Percona的审计插件

MySQL 8 社区版安装Percona的审计插件

时间:2023-12-16 14:16:16浏览次数:30  
标签:audit 插件 log PLUGIN mysql Percona MySQL localhost NAME

1.下载插件

# tar -xvf Percona-Server-8.0.32-24-Linux.x86_64.glibc2.17-minimal.tar.gz 
# cd Percona-Server-8.0.32-24-Linux.x86_64.glibc2.17-minimal/lib/plugin
# cp audit_log.so /usr/local/mysql/lib/plugin/

 

2.查看插件位置

root@localhost (none)>show variables like '%plugin_dir%';
+---------------+------------------------------+
| Variable_name | Value                        |
+---------------+------------------------------+
| plugin_dir    | /usr/local/mysql/lib/plugin/ |
+---------------+------------------------------+
1 row in set (0.01 sec)

 

3.查看是否已经安装过审计插件

root@localhost mysql>SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%';
Empty set (0.01 sec)

root@localhost mysql>SHOW variables LIKE 'audit%';
Empty set (0.00 sec)

root@localhost mysql> 

 

4.安装插件

root@localhost (none)> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
Query OK, 0 rows affected (0.00 sec)

 

5.查看是否安装成功

root@localhost (none)> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
*************************** 1. row ***************************
           PLUGIN_NAME: audit_log
        PLUGIN_VERSION: 0.2
         PLUGIN_STATUS: ACTIVE
           PLUGIN_TYPE: AUDIT
   PLUGIN_TYPE_VERSION: 4.1
        PLUGIN_LIBRARY: audit_log.so
PLUGIN_LIBRARY_VERSION: 1.11
         PLUGIN_AUTHOR: Percona LLC and/or its affiliates.
    PLUGIN_DESCRIPTION: Audit log
        PLUGIN_LICENSE: GPL
           LOAD_OPTION: ON
1 row in set (0.00 sec)

root@localhost (none)>SHOW variables LIKE 'audit%';
+-----------------------------+-----------------------------+
| Variable_name               | Value                       |
+-----------------------------+-----------------------------+
| audit_log_buffer_size       | 1048576                     |
| audit_log_exclude_accounts  |                             |
| audit_log_exclude_commands  |                             |
| audit_log_exclude_databases |                             |
| audit_log_file              | /test/mysql_audit/audit.log |
| audit_log_flush             | OFF                         |
| audit_log_format            | CSV                         |
| audit_log_handler           | FILE                        |
| audit_log_include_accounts  |                             |
| audit_log_include_commands  |                             |
| audit_log_include_databases |                             |
| audit_log_policy            | LOGINS                      |
| audit_log_rotate_on_size    | 0                           |
| audit_log_rotations         | 0                           |
| audit_log_strategy          | ASYNCHRONOUS                |
| audit_log_syslog_facility   | LOG_USER                    |
| audit_log_syslog_ident      | percona-audit               |
| audit_log_syslog_priority   | LOG_INFO                    |
+-----------------------------+-----------------------------+
18 rows in set (0.00 sec)

 

6.添加配置

在配置文件中添加审计配置

plugin-load = audit_log.so
audit_log_file = /test/mysql_audit/audit.log
audit_log_format = CSV
audit_log_policy = LOGINS  
audit_log_handler = FILE
audit_log_rotate_on_size = 1048576

其中 audit_log_policy 的取值有:

·ALL - all events will be logged
·LOGINS - only logins will be logged
·QUERIES - only queries will be logged
·NONE - no events will be logged

 

创建审计日志目录闭并重启mysql

mkdir -p /test/mysql_audit
chown -R mysql:mysql /test/mysql_audit

 

7.重启后查看

安装后,Performance Schema会启用一些instruments

root@localhost mysql>SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE 'audit%';
+-------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+-------------+---------------+
| audit_log   | ACTIVE        |
+-------------+---------------+
1 row in set (0.00 sec)

root@localhost (none)>SELECT NAME FROM performance_schema.setup_instruments WHERE NAME LIKE '%audit%';
+-------------------------------------------------------------+
| NAME                                                        |
+-------------------------------------------------------------+
| wait/synch/mutex/sql/LOCK_audit_mask                        |
| wait/synch/mutex/audit_log/file_logger::lock                |
| wait/synch/mutex/audit_log/audit_log_buffer::mutex          |
| wait/synch/rwlock/audit_log/audit_log_filter::account_list  |
| wait/synch/rwlock/audit_log/audit_log_filter::database_list |
| wait/synch/rwlock/audit_log/audit_log_filter::command_list  |
| wait/synch/cond/audit_log/audit_log_buffer::written_cond    |
| wait/synch/cond/audit_log/audit_log_buffer::flushed_cond    |
| memory/audit_log/audit_log_logger_handle                    |
| memory/audit_log/audit_log_handler                          |
| memory/audit_log/audit_log_buffer                           |
| memory/audit_log/audit_log_accounts                         |
| memory/audit_log/audit_log_databases                        |
| memory/audit_log/audit_log_commands                         |
+-------------------------------------------------------------+
14 rows in set (0.00 sec)
 

8.审计事件分析

以下面的登录记录为例

<AUDIT_RECORD
  NAME="Connect"
  RECORD="2_2023-12-06T03:11:01"
  TIMESTAMP="2023-12-06T03:11:13Z"
  CONNECTION_ID="8"
  STATUS="0"								--0表示登录成功;非0表示登录失败
  USER="root"
  PRIV_USER="root"
  OS_LOGIN=""
  PROXY_USER=""
  HOST="localhost"
  IP=""
  DB=""
/>

 

9.日志格式

支持OLD, NEW, JSON, 和 CSV 格式。其中old和new是基于xml格式的。由变量 audit_log_format  控制。

 

更多使用方法可以参考:

https://planet.mysql.com/entry/?id=5992239

https://docs.percona.com/percona-server/5.7/management/audit_log_plugin.html

https://cybersecthreat.com/2021/12/09/mysql-community-edition-audit-logging/

https://blog.51cto.com/u_16213454/7738338

https://medium.com/@larrie.loi/mysql-8-0-x-audit-solution-ee0d16d2d332

https://www.percona.com/blog/how-to-store-mysql-audit-logs-in-mongodb-in-a-maintenance-free-setup/

 

标签:audit,插件,log,PLUGIN,mysql,Percona,MySQL,localhost,NAME
From: https://www.cnblogs.com/abclife/p/17879307.html

相关文章

  • MySQL 8 密码验证组件
    验证密码(validate_password)组件通过要求输入账户密码和对潜在密码进行强度测试来提高安全性。在MySQL8.0中,validate_password插件是以validate_password组件的方式实现的。插件的方式仍然可以实用,但是已经过期,未来可能被移除。validate_password提供了一个函数validate_pas......
  • delphi ADO通过ODBC连接MySQL
    ADO通过ODBC连接MySQL操作步骤下载32位MySQLODBC驱动(MySQLConnector/ODBC下载地址)选择ADO驱动程序MicrosoftOLEDBProviderforODBCDrivers设置连接字符串连接字符串使用数据源名称Provider=MSDASQL.1;PersistSecurityInfo=False;DataSource=ceshiDataS......
  • 记一个坑爹的报错,不要过于信任IDE上的热部署插件
    近期处理一个老项目的安全漏洞,要求敏感数据不能明文传输,考虑到效率和兼容性等问题,决定使用对称加密,前端使用CryptoJS,后端使用Java标准库提供的API;最开始试了DES算法,可以调通,但是鉴于现在这个算法因为秘钥太短已经不安全,又尝试新的AES,但是怎么也不行,后台解密报错:java......
  • 关于VMware中beeline和MySQL的猜想
    昨天讲live重装了一次,发现是可以正常登录beeline的,但是当我辛辛苦苦下载好MySQL之后发现登录beeline依旧会出现 CouldnotopenclienttransportwithJDBCUri:jdbc:hive2://node1:10000:java.net.ConnectException:拒绝连接(Connectionrefused)(state=08S01,code=0)的......
  • mysql索引有哪些类型?
    MySQL目前主要有的索引类型为:普通索引、唯一索引、主键索引、组合索引、全文索引。通过给字段添加索引可以提高数据的读取速度,提高项目的并发能力和抗压能力。索引优化时mysql中的一种优化方式。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。下面我们来看......
  • Docker部署mysql5.7数据库
    1、拉取镜像dockerpullmysql:5.72、启动mysql5.7镜像dockerrun-p3306:3306--namemysql\-v/mydata/mysql/log:/var/log/mysql\-v/mydata/mysql/data:/var/lib/mysql\-v/mydata/mysql/conf:/etc/mysql\-eMYSQL_ROOT_PASSWORD=root\-dmysql:5.7参数说明......
  • MySQL如何输出发生死锁的SQL到日志文件
    一、背景首先我们在日常的开发中,大概率会使用批量更新,或者在一个事务里面做增删改查,那么就有可能不同事务之间导致死锁的发生。这里主要讲的是如何将当时发生死锁的信息输出到日志文件中,以及具体的SQL打印。二、如何实现查了很多网上的文章,都是使用什么下面之类的命令showengin......
  • ffmpeg 添加自定义编解码插件
    有两种方法:一.ffmpeg添加自定义编解码插件(以修改ffmpeg源码的方式添加)例:添加一个解码器,给这个解码器取个名字叫mydecoder,可以通过下面的步骤添加:1.在libavcodec目录下,新建文件mydecoder.c#include"avcodec.h"#include"codec_internal.h"//自己封装的编解码器的头文件#......
  • 一、MySQL概述及下载安装
    一、数据库概述二、什么是SQL三、安装MySQL四、卸载MySQL五、查看MySQL服务六、MySQL服务启停七、登录MySQL......
  • IntelliJ IDEA无公网远程连接Windows本地Mysql(开发调试必备,提高开发效率!!!)
    IDEA作为Java开发最主力的工具,在开发过程中需要经常用到数据库,如mysql数据库,但是在IDEA中只能连接本地数据库,有时候需要访问其他地方如家里或者公司的数据库,将无法访问,内网的局限性导致我们只能在同一网络访问,无法跨网络访问,所以,本例将介绍如何在异地也可以实现远程连接......