GBase 8a MPP提供审计日志功能,它可以记录数据库执行的所以sql语句,其内容包括主机名,用户名,sql执行时间、执行状态、内容等重要信息。利用审计日志可以很好的了解集群对sql的执行情况,利于分析性能、安全管理。
一、开启审计日志
1、本连接内生效
set audit_log =
1; 开启审计日志,默认值为0,为关闭。
set log_output = 'table'; 设定审计日志存放在系统表中。默认为file,以文件形式保存在日志路径中。
2、全局生效
set global audit_log
= 1;
set global log_output = 'table';
\q
这样设置,审计日志在下次重启集群前保持开启。
3、永久生效
配置文件内直接修改参数,然后重启集群,可保证审计日志功能永久开启。
二、设置审计策略
审计策略用来控制审计日志的记录范围,审计日志功能打开后至少要有一个可用的策略才会开始记录。
创建审计日志的语法:
create audit policy
<audit_policy_name> [(<audit_policy_item>
=<value>[,<audit_policy_item> = <value>])];
audit_policy_name为审计策略的名称,audit_policy_item为审计侧录的项目,用来控制审计范围。
审计日志可以设置很多个,它们可以同时生效,作用范围取并集,也可以通过设置Enable项目来开启、禁用审计策略。
下面介绍审计项目:
Enable:Y:启用,默认值 N:禁用。
Hosts:严格匹配 host,支持空格”分隔的 host 列表,host 可使用’%’ 和’_’做通配符。默认不限制。
User :严格匹配 user,区分大小写。
Db:严格匹配数据库,默认不限制。
Object ”:匹配 Obj_type 指定的 object,(Obj_type ”: TABLE(VIEW):Object
为表(视图)PROCEDURE:Object 为存储过程FUNCTION:Object 为函数)
Sql_commands:匹配sql类型(INSERT, DELETE, UPDATE, LOAD,
CREATE_USER, CREATE_DB, CREATE_TABLE, CREATE_VIEW, CREATE_INDEX,
CREATE_PROCEDURE, CREATE_FUNCTION,RENAME_USER, ALTER_DB, ALTER_TABLE,
ALTER_PROCEDURE, ALTER_FUNCTION, ALTER_EVENT, DROP_USER, DROP_DB, DROP_TABLE,
DROP_VIEW, DROP_INDEX, DROP_PROCEDURE, DROP_FUNCTION, DROP_EVENT, TRUNCATE,
GRANT, REVOKE, SELECT,OTHERS)。
Long_query_time:匹配最小查询秒数,可带 6 位小数,精确到微秒,默认值 0,取值范围为 0~31536000s。
status:匹配执行状态。SUCCESS:执行成功;FAILED:执行失败。
需要注意一点,在集群层上创建审计策略,只在集群层生效,node层上记录需要另外单独创建。
三、查看审计日志
gbase库下的audit_log是存放审计日志的表,若log_output设置为‘file’,则前往gcluster/log/gcluster/gclusterd-audit.log(默认路径)查看日志。




