执行正确的设置才会触发审计,比如:为函数对象设置一个 INSERT 的审计策略将无法生效,因为数据库并
不支持 INSERT 到一个函数。
启用对象审计:
sysaudit.set_audit_object(audit_type text,
audit_users text,
audit_schema text,
audit_objs text)
参数说明:
audit_type 审计对象的类型,支持:TABLE、VIEW、MATERIALIZED VIEW、PRO
CEDURE、FUNCTION,大小写不敏感。
audit_users 审计的用户名,null 表示审计所有用户。
audit_schema 审计对象的模式名。可以为空,表示审计所有模式下的此类对象。
audit_objs 审计对象的名称,比如为表名、视图名、存储过程名。可以为空,表示
审计指定模式下的所有此类对象。
返回值说明:
无返回值。
取消对象审计:
sysaudit.remove_audit (rule_id bigint)
对象审计示例:
审计 user1 用户对 public 模式下的表 t1 的任意操作。
SELECT sysaudit.set_audit_object('table', 'user1', 'public', 't1');
取消 id 为 10002 的审计设置。
CALL sysaudit.remove_audit (10002);
审计配置查询
审计策略设置可通过系统视图 all_audit_rules 查询,结构如下表所示:
列名
数据类型
说明
audit_id
bigint
审计策略编号
audit_target
smallint
审计目标(事件、语句、对象)
audit_type
text
审计类型
audit_users
text
审计用户
audit_schema
text
审计对象所在模式
audit_objnames
text
审计对象名称
audit_objoid
oid
审计对象 id
creator_name
text
策略设置者名