作者:姚远

专注于 Oracle、MySQL 数据库多年,Oracle 10G 和 12C OCM,MySQL 5.6 ,5.7,8.0 OCP。现在鼎甲科技任顾问,为同事和客户提供数据库培训和技术支持服务。

本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


背景

Oracle 的 MySQL 社区版不带审计插件(Audit Plugin),要想使用审计功能,你可以用企业版,不过这需要银子。业界还有一些 GPL 协议的审计插件,这里我们选择 MariaDB 的审计插件。一、迁移并安装MariaDB 的 10.1 版本对应与 Oracle 的 MySQL 5.7,我们到它的官网上下载 Linux 的通用版本,下载下来解压大约 1.3G:

# ll -h mariadb-10.1.46-linux-x86_64.tar -rw-rw-r-- 1 scutech scutech 1.3G Aug 19 18:19 mariadb-10.1.46-linux-x86_64.tar

我们找到需要的审计插件:

./mariadb-10.1.46-linux-x86_64/lib/plugin/server_audit.so

把这个 so 结尾的文件拷贝到 MySQL 的插件目录,例如:/usr/lib/mysql/plugin/ ,使用下面的命令加载:

mysql>  install plugin server_audit SONAME 'server_audit.so';mysql> show plugins;......| SERVER_AUDIT               | ACTIVE   | AUDIT              | server_audit.so      | GPL     |+----------------------------+----------+--------------------+----------------------+---------+

通过 SHOW PLUGINS 可以看到 SERVER_AUDIT 是最后一个 plugin。二、配置MariaDB 的审计插件的配置说明参见:https://mariadb.com/kb/en/mariadb-audit-plugin-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              |+-------------------------------+-----------------------+16 rows in set (0.00 sec)

这些参数值可以用 SET 语句进行设置:

SET GLOBAL server_audit_logging=ON;SET global server_audit_events='connect,query';

为了重新启动后也能生效,可以在 MySQL 的配置文件添加相应的设置:

[server]... server_audit_logging=ONserver_audit_events=connect,query…

server_audit_logging 这参数默认为 OFF,把这个参数设置为 ON 才能启动审计功能。server_audit_events 决定记录的事件,这里我们记录 connect 和 query,也就是记录用户的连接和查询语句。三、审计记录的文件和格式使用下面的命令可以强制进行审计文件的切换:

mysql> set global server_audit_file_rotate_now =on;Query OK, 0 rows affected (0.00 sec)

生成一个新的审计文件,文件名后面数字表示文件的序号:

root@infokist:/var/lib/mysql# ll server_au*-rw-r----- 1 mysql mysql  26163 Aug 20 11:11 server_audit.log-rw-r----- 1 mysql mysql 326651 Aug 20 11:09 server_audit.log.1
  • server_audit_file_rotate_size:决定每个审计记录文件的大小,到这个阀值时自动进行审计记录文件的切换。

  • server_audit_file_rotations:决定审计记录文件的数量,到这个阀值时会覆盖第一个审计记录文件,默认为 9。

  • server_audit_output_type:设置为 file 时,记录成文件,默认目录是 MySQL 的 datadir 目录, 默认文件名是 server_audit.log。当设置为 syslog 时,审计记录会通过标准 API 发送给本地的 syslogd daemon。

审计记录文件的格式是:

[timestamp],[serverhost],[username],[host],[connectionid],[queryid],[operation],[database],[object],[retcode]

一个对应的例子如下:

20200820 11:04:04,infokist,superuser,localhost,23,4759,QUERY,ds_db,'select count(*) from vm_zfs_storage',0

社区近期动态

 点一下“阅读原文”了解更多资讯

mysql 的connect 设置 无法点next_技术分享 | MySQL 使用 MariaDB 审计插件相关推荐

  1. mysql 如何设置延迟启动_技术分享 | MySQL 网络延时参数设置建议

    作者:毛思平 工作11年,从事数据库工作7年,主要在金融行业.主要是做oracle,mysql.现在在农行软开中心主要做数据库应用方面的研究. 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授 ...

  2. mysql多源复制 知乎_技术分享 | MySQL 多源复制场景分析

    作者:杨涛涛 今天有客户问起:如何汇总多台 MySQL 数据到一台上? 我回答:可以尝试下 MySQL 的多源复制. 我们知道 MySQL 单主一从,单主多从,或者级联的主从架构我们都见的很多了.但是 ...

  3. mysql优化说出九条_技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢?

    原标题:技术分享 | MySQL 优化:为什么 SQL 走索引还那么慢? 背景 2019-01-11 9:00-10:00 一个 MySQL 数据库把 CPU 打满了. 硬件配置:256G 内存,48 ...

  4. angular select设置默认选中_技术分享 | Charset 和 Collat??ion 设置对 MySQL 性能的影响...

    原创: 管长龙 译 作者:Vadim Tkachenko 通过测试,比较 MySQL 5.7.25 和 MySQL 8.0.15 之间字符集和校验规则的设置所带来的性能差异.测试环境 系统 | Ubu ...

  5. linux mysql 客户端编码设置_Windows、Linux系统下mysql编码设置方法_MySQL

    bitsCN.com 方法1 怎样手工修改mysql4.1以上版本默认编码 使用php5+MySQL 4.1.x/5.x 环境: mysql4导入mysql5容易出现中文乱码情况,因此,首先你需要做如 ...

  6. 基于华为云obs实现文件上传下载(技术栈mysql+springboot+Maven+jsp+java)的技术分享

    基于华为云obs实现文件上传下载(技术栈mysql+springboot+jsp+java)的技术分享 obs实现文件上传下载 前言 一.OBS是什么? 二.使用步骤 1.1 前期准备 2 工具的内容 ...

  7. 技术分享 | MySQL : SSL 连接浅析

    作者:胡呈清 爱可生 DBA 团队成员,擅长故障分析.性能优化,个人博客:https://www.jianshu.com/u/a95ec11f67a8,欢迎讨论. 本文来源:原创投稿 *爱可生开源社区 ...

  8. android4 设置栈大小,【技术分享】Android内核漏洞利用技术实战:环境搭建栈溢出实战...

    [技术分享]Android内核漏洞利用技术实战:环境搭建&栈溢出实战 2017-08-14 16:22:02 阅读:0次 预估稿费:300RMB 投稿方式:发送邮件至linwei#360.cn ...

  9. mysql55和57的区别_技术分享 | MySQL:count(*)、count(字段) 实现上区别

    我们继续来讨论一下 count(*).count(字段)实现上的区别.注意我们这里都使用 Innodb 做为存储引擎,不讨论其他引擎.因为了有了前面的讨论,更容易看出它们的区别,这里我们有如下注意点: ...

最新文章

  1. 只读域控制器RODC的安装
  2. Android开发——跟随手指的小球实现
  3. c++中的 单例模式(singleton)和双检测锁(Double-Checked Locking)
  4. 今日arXiv精选 | 13 篇 ICCV 2021 最新论文
  5. LeetCode 206 Reverse Linked List 解题报告
  6. Java笔记-DH密钥交换获取密钥及AES加解密
  7. 一次 Discuz X3.2 切换数据库后无法登录的问题排查经历
  8. [读书笔记]Ajax的通信方式 (一)
  9. 喜欢熬夜的人注意!出现3大迹象时,说明身体极度危险!
  10. MATLAB神经网络工具箱 BP神经网络函数化表示 BP神经网络梯度\求导函数
  11. 用PS快速制作水彩效果人物照片
  12. linux配置中端代理
  13. php 文件内容追加,PHP 文件写入或追加数据
  14. php储存网页内容的简单示范
  15. ROAS和ROI有什么不同?教你正确对待ROAS和ROI
  16. 什么是 “奋斗逼”?
  17. 神州控股、神州信息、神州数码集团与腾讯云签署战略合作
  18. 自动化立体仓库AGV小车控制系统
  19. flutter widget super(key: key)的作用(五)
  20. VirtualDesktop提示Oculus servers unreachable

热门文章

  1. C++实现输入两个整数n和m,从数列1,2,3...n中随意取几个数,使其和等于m,要求列出所有的组合
  2. 放大器和比较器的区别
  3. python建立访客记录
  4. nginx 之负载均衡 :PHP session 跨多台服务器配置
  5. 从“冰柜”到“冰棍儿”,下载Github单个文件
  6. Lintcode107 Word Break solution 题解
  7. 邁向IT專家成功之路的三十則鐵律 鐵律十七:IT人休閒之道-清心
  8. ArcEngine读取数据(数据访问)-转载
  9. 64位IIS(IIS6/IIS7)上跑Asp + Jet.Oledb的设置要点
  10. 我的2008年(上)-《走出软件作坊》是怎样炼成的