使用MariaDB实现MySQL数据库审计

前言

使用数据库日志审计功能可以记录数据库所有操作,方便问题回溯、责任厘清。MySQL商业版自带日志审计功能,社区版有很多方案,本例使用MariaDB插件实现。

本例在Windows上实现,Linux原理一致。

下载MariaDB

  • 这里使用解压缩版, 下载地址
  • MySQL与MariaDB有版本对应关系,一般来讲:
    在这里插入图片描述
  • 本例MySQL版本为5.7+, 使用mariadb-10.4.26-winx64(即当前10.4的最近版本)

注意注意注意: mariadb官网中明确说明MySQL5.7对应mariadb10.2,10.3,10.4版本,但实际操作中发现,小版本之间还是有略微差异,如果安装插件的时候报错了,尝试换下小版本。
本例中测试MySQL5.7.29 对应 Mariadb10.4.26时正常
但是测试MySQL5.7.37对应 Mariadb10.4.26时报错, 无法打开对应目录下server_audit.dll,最终使用Mariadb10.3.36正常运行

下载后解压到本地合适位置。

安装server_audit插件

以下所有指令可以登录MySQL中执行

  1. 进入解压文件执行目录
cd ./mariadb-10.4.26-winx64/bin/
  1. 通过mariadb登录mysql
mysql -uroot -p

在这里插入图片描述

可以使用show databases;查看数据库信息, 验证登录

  1. 查看mysql插件安装位置
show variables like '%plugin%';

在这里插入图片描述

此处找到mysql插件安装位置, 其实就在mysql安装目录下

  1. 拷贝server_audit.dll
    将mariadb解压目录汇总的./mariadb-10.4.26-winx64/lib/plugin/server_audit.dll拷贝到上述MySQL插件安装位置,即:D:\java\mysql\mysql-5.7\lib\plugin\server_audit.dll
  2. 执行server_audit安装指令
INSTALL PLUGIN server_audit SONAME 'server_audit.dll';

如果报错can't open share ...尝试切换版本

  1. 运行插件
set global server_audit_logging=on

执行有些数据库操作, 发下data目录下出现了一个server_audit.log的文件, 里面就是数据库执行的日志了。
7. 使用命令执行是一次性的,持久使用可以修改MySQL配置文件
在my.ini中的[mysqld]下添加一下内容

# 加载插件
plugin_load_add = server_audit.dll
# 开启审计功能
server_audit_logging = ON
# 防止插件被卸载
server_audit = FORCE_PLUS_PERMANENT
# 是否强制切割审计日志
server_audit_file_rotate_now = ON
# 定义切割审计日志的文件大小1073741824=1GB(单位K)此处设置为300M
server_audit_file_rotate_size = 314572800
# 定义审计日志路径及文件名
server_audit_file_path = D:\\software\\mysql-5.7.34-winx64\\logs\\server_audit.log
server_audit_file_rotations = 200
  1. 重启Mysql服务, 观察制定路径下的日志文件

重要说明

  1. 需要使用哪些文件

重要说明:
实际上只需要server_audit.dll,所有指令都可以在mysql中执行

  1. 关于版本

本例MySQL版本为5.7+, 使用mariadb-10.4.26-winx64(即当前10.4的最近版本)
但是注意: mariadb官网中明确说明MySQL5.7对应mariadb10.2,10.3,10.4版本,但实际操作中发现,小版本之间还是有略微差异,如果安装插件的时候报错了,尝试换下小版本。
本例中测试MySQL5.7.29 对应 Mariadb10.4.26时正常
但是测试MySQL5.7.37对应 Mariadb10.4.26时报错, 无法打开对应目录下server_audit.dll,最终使用Mariadb10.3.36正常运行

以上本文就是全部内容了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: MariaDBMySQL数据库的链接方式是相同的。你可以使用以下步骤来链接MariaDB数据库: 1. 安装MariaDB客户端程序,例如MySQL Workbench或命令行工具。 2. 打开MariaDB客户端程序并创建一个新的连接。 3. 输入数据库服务器的主机名、端口号、用户名和密码。 4. 点击连接按钮以建立到MariaDB数据库服务器的连接。 5. 一旦连接成功,你可以通过MariaDB客户端程序执行查询、修改和管理数据库。 需要注意的是,MariaDBMySQL在某些方面存在差异,因此在使用过程中需要注意这些差异对你的应用程序或数据库设计的影响。 ### 回答2: MariaDBMySQL是两种不同的关系型数据库管理系统,但它们在很多方面非常相似。要将MariaDB连接到MySQL数据库,可以按照以下步骤进行操作: 1. 确保已安装MariaDBMySQL数据库。如果未安装,请前往官方网站下载并按照安装指南进行安装。 2. 打开终端或控制台窗口,以便执行以下命令。 3. 使用以下命令登录到MariaDB数据库服务器: ``` mysql -u root -p ``` 其中,-u选项指定要使用的用户名,-p选项表示登录时需要输入密码。 4. 输入密码并按回车键登录到MariaDB服务器。 5. 创建一个新的MariaDB数据库。可以使用以下命令: ``` CREATE DATABASE databasename; ``` 其中databasename是要创建的新数据库的名称。 6. 使用以下命令将MariaDB服务器连接到MySQL服务器: ``` CREATE SERVER server_name FOREIGN DATA WRAPPER mysql OPTIONS (USER 'mysql_user', HOST 'mysql_server', DATABASE 'mysql_database', PORT mysql_port, SOCKET mysql_socket); ``` 其中server_name是要创建的新服务器的名称,mysql_user是MySQL数据库的用户名,mysql_server是MySQL服务器的主机名或IP地址,mysql_database是要连接的MySQL数据库名称,mysql_port是MySQL服务器的端口号,mysql_socket是MySQL服务器的套接字路径。 7. 使用以下命令创建一个新的MariaDB表,该表连接到MySQL服务器上的数据表: ``` CREATE TABLE table_name (...) ENGINE=FEDERATED CONNECTION='mysql://user:password@mysql_server:port/database/table'; ``` 其中table_name是要创建的新表的名称,user是MySQL数据库的用户名,password是用户的密码,mysql_server是MySQL服务器的主机名或IP地址,port是MySQL服务器的端口号,database是要连接的MySQL数据库名称,table是要连接的数据表名称。 8. 输入以上命令后,MariaDB将连接到MySQL数据库,并可以使用MariaDBMySQL数据库进行读写操作。 请注意,以上步骤仅说明了如何将MariaDB连接到MySQL数据库。实际使用中,还需要根据具体情况调整命令参数和配置。 ### 回答3: MariaDBMySQL数据库的一个分支,因此可以通过与MySQL相同的方式来链接MariaDB数据库。 要链接MariaDB数据库,首先需要安装MariaDB服务器和客户端软件。安装完成后,可以使用以下步骤来链接MariaDB数据库: 1. 打开命令行终端或使用图形用户界面工具打开MariaDB客户端。 2. 在命令行终端中输入以下命令来链接MariaDB数据库: ``` mysql -u [用户名] -p ``` 其中,[用户名]是你要用来链接数据库的用户名。 这将提示你输入密码。 3. 输入密码后,按回车键确认。如果密码正确,你将成功链接到MariaDB数据库,并可以在命令行终端或图形用户界面中执行数据库相关操作。 你也可以使用其他链接MariaDB数据库的方法,如使用编程语言的MySQL/MariaDB连接库。不同的编程语言可能有不同的库和语法,但基本步骤是相似的。你需要提供数据库的主机名(通常是localhost)、用户名、密码和数据库名称等信息来建立连接。 总结起来,要链接MariaDB数据库,首先确保MariaDB服务器和客户端已经安装,然后通过命令行或编程语言的连接库提供相关信息来建立连接。连接成功后,你就可以执行各种数据库操作了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值