当前位置:网站首页>Introduction to MySQL audit plug-in
Introduction to MySQL audit plug-in
2022-07-01 15:00:00 【InfoQ】
1. MySQL Status of community audit log
2. Audit plug-in tutorial


# see MySQL Plug in storage path
mysql> show variables like 'plugin_dir';
+---------------+------------------------------+
| Variable_name | Value |
+---------------+------------------------------+
| plugin_dir | /usr/local/mysql/lib/plugin/ |
+---------------+------------------------------+
# Add the audit plug-in server_audit.so Store in this path
[[email protected] plugin]# ls -lh server_audit.so
-rw-r--r--. 1 root root 191K May 4 2021 server_audit.so
# Change the owner and permission of the plug-in
[[email protected] plugin]# chown mysql:mysql server_audit.so
[[email protected] plugin]# chmod 755 server_audit.so
[[email protected] plugin]# ls -lh server_audit.so
-rwxr-xr-x. 1 mysql mysql 191K May 4 2021 server_audit.so
# Enter the database and install the audit plug-in
mysql> INSTALL PLUGIN server_audit SONAME 'server_audit.so';
Query OK, 0 rows affected (0.07 sec)
mysql> show plugins;
+----------------------------+--------+--------------------+-----------------+---------+
| Name | Status | Type | Library | License |
+----------------------------+--------+--------------------+-----------------+---------+
...
| SERVER_AUDIT | ACTIVE | AUDIT | server_audit.so | GPL |
+----------------------------+--------+--------------------+-----------------+---------+
# see audit Initial parameter configuration
mysql> show variables like '%audit%';
+-------------------------------+-----------------------+
| Variable_name | Value |
+-------------------------------+-----------------------+
| server_audit_events | |
| 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_loc_info | |
| server_audit_logging | OFF |
| server_audit_mode | 1 |
| 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 |
+-------------------------------+-----------------------+
# Open audit online
mysql> set global server_audit_logging=on;
Query OK, 0 rows affected (0.00 sec)
mysql> set global server_audit_events='connect,table,query_ddl,query_dcl,query_dml_no_select';
Query OK, 0 rows affected (0.00 sec)
mysql> set global server_audit_file_path ='/data/mysql/logs/server_audit.log';
Query OK, 0 rows affected (0.00 sec)
mysql> set global server_audit_file_rotate_size=104857600;
Query OK, 0 rows affected (0.01 sec)
# [mysqld] Add the following configuration Make it permanent
server_audit=FORCE_PLUS_PERMANENT
server_audit_logging=ON
server_audit_file_path=/data/mysql/logs/server_audit.log
server_audit_events=connect,table,query_ddl,query_dcl,query_dml_no_select
server_audit_file_rotate_size=104857600

# After the operation Check the contents of the audit log
20220512 15:17:17,mysqlhost2,test_user,10.30.21.95,118,0,FAILED_CONNECT,,,1045
20220512 15:17:30,mysqlhost2,test_user,10.30.21.95,119,0,FAILED_CONNECT,,,1045
20220512 15:20:26,mysqlhost2,test_user,10.30.21.95,124,0,CONNECT,,,0
20220512 15:20:49,mysqlhost2,test_user,10.30.21.95,124,395,QUERY,,'create database testdb',0
20220512 15:22:06,mysqlhost2,test_user,10.30.21.95,129,419,QUERY,testdb,'CREATE TABLE if not exists `test_tb0` (\r\n `increment_id` int(11) NOT NULL AUTO_INCREMENT COMMENT \' Since the primary key \',\r\n `test_id` int(11) NOT
NULL ,\r\n `test_name` varchar(20) DEFAULT NULL,\r\n `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT \' Creation time \',\r\n `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE C
URRENT_TIMESTAMP COMMENT \' Modification time \',\r\n PRIMARY KEY (`increment_id`)\r\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=\' test table\'',0
20220512 15:23:09,mysqlhost2,test_user,10.30.21.95,129,426,QUERY,testdb,'insert into test_tb0 (test_id,test_name) values (1001,\'4343df\'),(1002,\'dfd\')',0
20220512 15:23:22,mysqlhost2,test_user,10.30.21.95,129,433,QUERY,testdb,'delete from test_tb0',0
20220512 15:24:14,mysqlhost2,test_user,10.30.21.95,129,448,QUERY,testdb,'create table test_tb0 (id int)',1050
20220512 15:24:25,mysqlhost2,test_user,10.30.21.95,129,452,QUERY,testdb,'drop table test_tb0',0
20220512 15:25:13,mysqlhost2,test_user,10.30.21.95,126,0,DISCONNECT,testdb,,0
# Connection audit mainly audits the connection database 、 disconnect 、 Connection failure and other operations , The log format is as follows :
[timestamp],[serverhost],[username],[host],[connectionid],0,CONNECT,[database],,0
[timestamp],[serverhost],[username],[host],[connectionid],0,DISCONNECT,,,0
[timestamp],[serverhost],[username],[host],[connectionid],0,FAILED_CONNECT,,,[retcode]
# QUERY Audit various database change events , Execution failure will also be recorded , The log record format is as follows :
[timestamp],[serverhost],[username],[host],[connectionid],[queryid],QUERY,[database],[object], [retcode]
- Rich audit content : Including user connections , close ,DML operation , stored procedure , trigger , Events, etc. .
- Flexible audit strategy : You can customize audit events , For example, filter out select Inquire about , Or exclude auditing a user, etc .
- Flexible and convenient : It is free to use and easy to install , The audit function can be enabled and disabled online .
- Opening the audit will increase the performance cost of the database , And take up disk space .
- The log format is not rich enough , You cannot customize the output format .
- https://www.cnblogs.com/lijiaman/p/14257861.html
- https://www.jianshu.com/p/45b37a73e286
- https://mariadb.com/kb/en/mariadb-audit-plugin-options-and-system-variables/
边栏推荐
- openssl客户端编程:一个不起眼的函数导致的SSL会话失败问题
- 定了!2022海南二级造价工程师考试时间确定!报名通道已开启!
- 关于软件测试的一些思考
- Official announcement: Apache Doris graduated successfully and became the top project of ASF!
- 数字化转型:数据可视化赋能销售管理
- En utilisant le paquet npoi de net Core 6 c #, lisez Excel.. Image dans la cellule xlsx et stockée sur le serveur spécifié
- [stage life summary] I gave up the postgraduate entrance examination and participated in the work. I have successfully graduated and just received my graduation certificate yesterday
- 微信网页订阅消息实现
- Error-tf. function-decorated function tried to create variables on non-first call
- [零基础学IoT Pwn] 复现Netgear WNAP320 RCE
猜你喜欢

微服务追踪SQL(支持Isto管控下的gorm查询追踪)

leetcode:329. Longest increasing path in matrix

Task.Run(), Task.Factory.StartNew() 和 New Task() 的行为不一致分析

Rearrangement of overloaded operators

cmake 基本使用过程

Word2vec yyds dry goods inventory

JVM第一话 -- JVM入门详解以及运行时数据区分析

Written on the first day after Doris graduated

JVM第二话 -- JVM内存模型以及垃圾回收

竣达技术丨室内空气环境监测终端 pm2.5、温湿度TVOC等多参数监测
随机推荐
[Verilog quick start of Niuke question series] ~ use functions to realize data size conversion
Use the npoi package of net core 6 C to read excel Pictures in xlsx cells and stored to the specified server
项目中字符串判空总结
skywalking 6.4 分布式链路跟踪 使用笔记
JVM performance tuning and practical basic theory part II
The State Administration of Chia Tai market supervision, the national development and Reform Commission and the China Securities Regulatory Commission jointly reminded and warned some iron ores
It's settled! 2022 Hainan secondary cost engineer examination time is determined! The registration channel has been opened!
Opencv learning notes 5 -- document scanning +ocr character recognition
opencv学习笔记四--银行卡号识别
[零基础学IoT Pwn] 复现Netgear WNAP320 RCE
C learning notes (5) class and inheritance
qt捕获界面为图片或label显示
Pat 1121 damn single (25 points) set
从零开发小程序和公众号【第三期】
What are the requirements for NPDP product manager international certification registration?
定了!2022海南二级造价工程师考试时间确定!报名通道已开启!
数字化转型:数据可视化赋能销售管理
一波三折,终于找到src漏洞挖掘的方法了【建议收藏】
Opencv learning note 4 -- bank card number recognition
【天线】【3】CST一些快捷键