Logo
全量审计日志

全量审计日志 #

背景信息 #

全量审计日志,是指开启该功能后,系统将记录所有执行的 SQL 语句,并包含语句对应的数据库、用户、访问地址,访问耗时等信息,便于企业进行审计操作。

参数解释 #

  • general_query_log:全量审计日志仅有一个参数,值为 true 时启用全量日志,值为 false 时停用该功能。

前提条件 #

与“慢查询日志”功能相似,全量审计日志的实现也是基于 Agent 的,因此该功能仅适用于 DBPlusEngine-Proxy 且启用 Agent 的场景。

配置示例 #

全量审计日志是基于 Agent 的功能,因此以下配置位于 agent.yaml 中:

plugins:
  logging:
    BaseLogging:
      props:
        # Whether to enable slow query log.
        slow-query-log: true
        # Long query threshold, in milliseconds.
        long-query-time: 5000
        # Whether to enable general query log.
        # general-query-log: false

其中,general-query-log 配置为 false,表示不启用全量日志。 当需要全量日志时,可通过如下任意一种方式启用:

  • 将 general-query-log 配置 true 并重新启动 DBPlusEngine-Proxy。
  • 执行 DistSQL:SET VARIABLE general_query_log = true;

全量审计日志格式 #

全量审计日志格式如下:

db: {database} user: {user} host: {host} query_time: {query time}
{sql}
  • db:数据库名称;
  • user:当前连接中使用的用户名称;
  • host:客户端访问地址;
  • query_time:SQL 执行耗时,单位为 ms;
  • sql:客户端发送的 SQL 语句。

例如:

[INFO ] 2022-07-01 00:00:00.000 [ShardingSphere-Command-0] GENERAL-QUERY - db: sharding_db user: root host: 127.0.0.1 query_time: 145
CREATE TABLE `t_order` (
  `order_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `status` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL,
  PRIMARY KEY (`order_id`)
)

相关参考 #

可观察性