CREATE AUDIT POLICY
功能描述
创建统一审计策略。
注意事项
开启审计开关(audit_enabled=on)时,根据具体的审计策略决定需要记录的审计日志。
开启安全策略开关(enable_security_policy=on)时,审计策略才能生效。
未开启三权分立,只有安全策略管理员(poladmin)、系统管理员(sysadmin)或初始用户能进行此操作。
开启三权分立(enable_Separation_Of_Duty=on)后,只有安全管理员才能进行此操作。
语法格式
CREATE AUDIT POLICY [ IF NOT EXISTS ] policy_name { { privilege_audit_clause | access_audit_clause } [ filter_group_clause ] [ ENABLE | DISABLE ] };
其中privilege_audit_clause为:
PRIVILEGES { DDL | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]
其中access_audit_clause为:
ACCESS { DML | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]
其中filter_group_clause为:
FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] }
其中DDL可以是:
{ ( ALTER | ANALYZE | COMMENT | CREATE | DROP | GRANT | REVOKE | SET | SHOW ) }
其中DML可以是:
{ ( COPY | DEALLOCATE | DELETE_P | EXECUTE | REINDEX | INSERT | PREPARE | SELECT | TRUNCATE | UPDATE ) }
其中FILTER_TYPE可以是:
{ APP | ROLES | IP }
参数说明
policy_name
审计策略名称,需要唯一,不可重复;
取值范围:字符串,要符合标识符的命名规范。
DDL
指的是针对数据库执行如下操作时进行审计,目前支持:CREATE、ALTER、DROP、ANALYZE、COMMENT、GRANT、REVOKE、SET、SHOW。
ALL
指的是上述DDL支持的所有对数据库的操作。
resource_label_name
资源标签名称。
DML
指的是针对数据库执行如下操作时进行审计,目前支持:SELECT、COPY、DEALLOCATE、DELETE、EXECUTE、INSERT、PREPARE、REINDEX、TRUNCATE、UPDATE。
FILTER_TYPE
描述策略过滤的条件类型,包括IP、APP、ROLES。
filter_value
指具体过滤信息内容。
ENABLE|DISABLE
可以打开或关闭统一审计策略。若不指定ENABLE、DISABLE,语句默认为ENABLE。
示例
1、创建dev_audit和bob_audit用户。
CREATE USER dev_audit PASSWORD 'dev@1234';
CREATE USER bob_audit password 'bob@1234';
2、创建一个表tb_for_audit。
CREATE TABLE tb_for_audit(col1 text, col2 text, col3 text);
3、创建资源标签。
CREATE RESOURCE LABEL adt_lb0 add TABLE(tb_for_audit);
4、对数据库执行create操作创建审计策略。
CREATE AUDIT POLICY adt1 PRIVILEGES CREATE;
5、对数据库执行select操作创建审计策略。
CREATE AUDIT POLICY adt2 ACCESS SELECT;
6、仅审计记录用户dev_audit和bob_audit在执行针对adt_lb0资源进行的create操作数据库创建审计策略。
CREATE AUDIT POLICY adt3 PRIVILEGES CREATE ON LABEL(adt_lb0) FILTER ON ROLES(dev_audit, bob_audit);
7、仅审计记录用户dev_audit和bob_audit,客户端工具为vsql,IP地址为'10.20.30.40'、'127.0.0.0/24',在执行针对adt_lb0资源进行的select、insert、delete操作数据库创建审计策略。
CREATE AUDIT POLICY adt4 ACCESS SELECT ON LABEL(adt_lb0), INSERT ON LABEL(adt_lb0), DELETE FILTER ON ROLES(dev_audit, bob_audit), APP(psql, gsql), IP('10.20.30.40', '127.0.0.0/24');
8、删除创建审计策略adt1。
DROP AUDIT POLICY adt1;