可以设置审计开关来进行对应的审计。
uxaudit.log:审计类型。选项有:
none:所有都不审计。
all:所有都审计。
read:审计读,如查询。
write:审计写,如插入,更新,删除,清除和copy。
function:函数审计,如do。
role:与角色和权限相关的审计,如授予、收回、创建、更改、删除角色。
ddl:所有ddl的审计。
misc:杂项命令审计,例如DISCARD、FETCH、CHECKPOINT、VACUUM。
默认值是read,write,ddl,role,function,misc.
uxaudit.log_catalog:系统表查询审计开关。缺省为开。
uxaudit.log_level:审计日志级别设置。缺省为LOG级别。还可以设置FATAL,PANIC。
uxaudit.log_parameter:该开关确定是否要记录SQL执行命令时候的参数。缺省为打开。
uxaudit.log_relation:是否在对session级别进行审计的时候,针对每个对relation(TABLE,VIEW等)操作的SELECT或者其他DML创建单独的log记录。缺省为关闭。
uxaudit.log_statement_once:是否只在第一次出现SQL statement的时候进行审计。缺省为关闭。
uxaudit.role:审计员,缺省为audit。
审计设定可以针对主体(Session)或者客体(object),具体示例如下:
审计策略由审计员通过alter...set设置,并且重启集群生效。
设置审计策略为写,并重启集群使之生效:
alter system set uxaudit.log = write;
创建测试用户:
create user audit_test password '1qaz!QAZ';
使用上面创建的用户创建测试表并分别进行对测试表进行读写:
create table industry(id int,name text); insert into industry (id,name)values (11,'polo'); select * from industry;
查看审计日志:
select * from uxaudit.vw_audit_event where user_name = 'audit_test';
审计日志只记录了写(insert)的日志,对于其他(create和select)没有进行记录。