MySQL管理工具MySQL Utilities — mysqlauditgrep(15)

mysqlauditgrep 与前面介绍的 mysqlauditadmin 工具一样,也是针对MySQL企业版本的。该工具提供对当前的或已经归档的审计日志进行搜索,根据不同的搜索标准搜索过滤显示结果,也可以对输出结果进行不同的格式化,如GRID (默认), TAB, CSV, VERTICAL, 和 RAW (原始的 XML 格式)。

mysqlauditgrep 可以根据下面的选项进行搜索和过滤审计日志:用户 (–users)、日期和时间范围 (–start-date and –end-date)、SQL查询类型(–query-type)、日志事件和记录类型 (–event-type)、状态 (–status)、匹配模式(–pattern)。 这些选项可以随意组合以便检索到最需要的记录。

匹配模式(–pattern)支持两种模式匹配:标准的SQL,也就是使用LIKE匹配(SQL模式)。另一种REGEXP(POSIX正则表达式的模式)。

输出格式

  • GRID (default)

    网格化输出,类似于MySQL客户端命令行工具显示输出。

  • CSV

    以逗号分隔值的格式输出.

  • VERTICAL

    类似于MySQL客户端命令行工具\G显示输出。

  • RAW

    原始RAW格式输出,写入到XML。

标准的SQL模式匹配

通过SQL标准定义的简单模式允进行匹配,% 和 _ 。默认不区分大小写。也就是like匹配。

正则表达式模式匹配(POSIX

标准的正则表达式模式比在SQL标准定义的简单模式更强大。

关于正则表达式的语法定义这里就不累述了,本博客中有相关文章的介绍。

这里是使用到Python的re模块,可以看看re模块文档:https://docs.python.org/2/library/re.html

选项

该工具使用前需要先启用审计日志插件。

实例

显示审计日志统计并以CSV格式输出

显示特定用户的审计日志

显示审计日志统计

显示一个特定时间范围的审计日志

显示特定的SQL模式

显示特定的正则表达式

显示特定查询类型审计日志

显示特定事件类型的审计日志

显示特定状态的审计日志

所有成功的状态–status=0,所有失败的状态–status=1-9999

多个搜索条件

权限

用户需要有读取磁盘上的审计日志权限。