暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL8 数据库审计日志功能开启指南

热衷于分享各种干货知识,大家有想看或者想学的可以评论区留言,秉承着“开源知识来源于互联网,回归于互联网”的理念,分享一些日常工作中能用到或者比较重要的内容,希望大家能够喜欢,不足之处请大家多宝贵地意见,我们一起提升,守住自己的饭碗。

在数据库管理中,审计日志的开启对于追踪和分析数据库操作、排查安全问题至关重要,接下来分享两种开启审计日志的方案。

一、方法一:使用general_log

(一)永久开启

1、在配置文件中添加:

vi /etc/my.cnf
general_log_file = /data/mysql/generalLog.log
general_log = on
log_timestamps = SYSTEM

2、重启数据库
[root@postgresql bin]# service mysql restart
3、查看日志
[root@postgresql mysql]# tailf generalLog.log

(二)审计日志效果及优缺点

  • 优点:在Linux和Windows服务器上均可使用,操作简单,无需安装第三方插件。
  • 缺点:审计日志记录较为粗糙,仅包含时间和SQL语句,缺乏客户端信息和执行数据库的相关信息。

二、方法二:使用Percona Server for MySQL审计插件

(一)背景介绍

  1. 1. MySQL 8.0企业版带有审计插件,如果需要,进行安装即可。但是社区版不自带审计插件,需使用Percona Server for MySQL提供的审计插件audit_log.so
    开启审计日志功能。
  2. 2. Percona Server for MySQL是一款免费、兼容、增强且开源的插件,可替代MySQL数据库,提供卓越性能、可扩展性、可用性、备份功能和可见性检测功能,深受企业信赖。

(二)配置步骤

  1. 1. 下载Percona Server for MySQL二进制包

地址:https://www.percona.com/downloads

下载对应版本的tar包。
这里我们下载Percona-Server-8.0.37-29-Linux.x86_64.glibc2.17-minimal.tar.gz
  1. 1. 查找审计日志插件的路径
root@localhost:mysql>SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%';
root@localhost:mysql>show variables like '%plugin_dir%';

[root@postgresql mysql]# cd /usr/local/mysql/lib/plugin/
[root@postgresql plugin]# ll

  1. 1. 取出audit_log.so文件
将文件上传至/usr/local/mysql/lib/plugin/路径下,赋予相应的权限
[root@postgresql plugin]# chown -R mysql.mysql audit_log.so 
[root@postgresql plugin]# chmod 755 audit_log.so

  1. 1. 安装审计插件
 root@localhost:mysql>SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%';

root@localhost:mysql>show variables like '%plugin_dir%';

root@localhost:mysql>INSTALL PLUGIN audit_log SONAME 'audit_log.so';

  1. 1. 重启数据库
[root@postgresql plugin]# service mysql restart
  1. 1. 查看日志
[root@postgresql mysql]# tailf audit.log

通过以上两种方法,可以根据实际需求在MySQL数据库中开启审计日志功能,以便更好地管理和监控数据库操作。主要体现在以下方面:

  1. 1. 安全与合规性方面
    • 满足法规要求:在许多行业,如金融、医疗、电商等,都有严格的数据安全和隐私法规。例如,金融行业的《巴塞尔协议》、医疗行业的HIPAA(美国健康保险流通与责任法案)等法规要求企业能够记录和审计数据库操作,以确保数据的安全性和合规性。开启数据库审计日志可以帮助企业满足这些法规要求,避免因违规而面临巨额罚款和法律责任。
    • 防范内部威胁:大部分数据泄露事件是由内部人员引起的,可能是由于员工的误操作、恶意篡改或窃取数据等行为。审计日志能够记录每个用户对数据库的操作,包括插入、更新、删除等操作。通过分析审计日志,可以及时发现异常的内部操作,如某个员工在非工作时间频繁访问敏感数据表,或者进行不符合其权限范围的操作,从而有效防范内部威胁。
    • 安全事件调查:当发生数据安全事件时,审计日志是调查事件的关键依据。例如,数据库遭受外部攻击,数据被篡改或泄露,安全团队可以通过审计日志追踪攻击的来源、攻击的时间、被攻击的对象以及攻击者执行的操作。这有助于快速定位问题,采取补救措施,如恢复数据、修复漏洞、阻止攻击者进一步访问等。
  2. 2. 性能优化与故障排查方面
    • 性能问题定位:审计日志可以记录数据库操作的时间戳、操作类型和涉及的数据量等信息。当数据库出现性能问题,如查询速度变慢或者系统资源占用过高时,通过分析审计日志可以了解在性能下降时间段内执行的操作。例如,如果发现某个特定的查询在某段时间内频繁执行,且该查询涉及大量数据的复杂关联操作,那么可以针对这个查询进行优化,如添加索引、调整查询逻辑等,从而提高数据库的整体性能。
    • 故障追溯:在数据库出现故障,如数据不一致、系统崩溃等情况时,审计日志可以帮助管理员追溯故障发生前的操作。例如,可能是由于某个不正确的更新操作或者批量数据插入导致了数据的不一致性。通过查看审计日志,可以确定是哪个操作引发了故障,以及操作的具体内容,从而更好地进行故障恢复和修复。
  3. 3. 数据质量与变更管理方面
    • 数据质量保障:审计日志可以监控数据的变更过程,确保数据的准确性和完整性。对于关键业务数据,如客户订单信息、财务数据等,任何未经授权或者不正确的修改都可能导致严重的业务问题。通过审计日志,可以跟踪数据的修改历史,及时发现并纠正错误的数据变更,保证数据质量。
    • 变更管理审计:在企业的IT环境中,数据库架构和数据经常会发生变更,如数据表结构的修改、存储过程的更新等。审计日志可以记录这些变更操作,包括变更的时间、执行者、变更的内容等。这有助于企业进行变更管理审计,确保所有的变更都经过了适当的审批流程,并且符合企业的IT策略和业务需求。



文中的概念来源于互联网,如有侵权,请联系我删除。

欢迎关注公众号:小周的数据库进阶之路,一起交流数据库、中间件和云计算等技术。如果觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!感兴趣的朋友可以加我微信,拉您进群与业界的大佬们一起交流学习。



文章转载自小周的数据库进阶之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论