CREATE AUDIT POLICY

功能描述

创建统一审计策略。

注意事项

只有poladmin,sysadmin或初始用户能进行此操作。

需要开启安全策略开关,即设置GUC参数enable_security_policy=on,脱敏策略才可以生效。具体设置请参考《安全加固指南》中“数据库配置>数据库安全管理策略>统一审计”章节。

语法格式

  1. CREATE AUDIT POLICY [ IF NOT EXISTS ] policy_name { { privilege_audit_clause | access_audit_clause } [ filter_group_clause ] [ ENABLE | DISABLE ] };
  • privilege_audit_clause:

    1. PRIVILEGES { DDL | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]
  • access_audit_clause:

    1. ACCESS { DML | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]
  • filter_group_clause:

    1. FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] }

参数说明

  • policy_name

    审计策略名称,需要唯一,不可重复;

    取值范围:字符串,要符合标识符的命名规范。

  • DDL

    指的是针对数据库执行如下操作时进行审计,目前支持:CREATE、ALTER、DROP、ANALYZE、COMMENT、GRANT、REVOKE、SET、SHOW、LOGIN_ANY、LOGIN_FAILURE、LOGIN_SUCCESS、LOGOUT。

  • 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_auditbob_audit用户。
  2. postgres=# CREATE USER dev_audit PASSWORD 'dev@1234';
  3. postgres=# CREATE USER bob_audit password 'bob@1234';
  4. --创建一个表tb_for_audit
  5. postgres=# CREATE TABLE tb_for_audit(col1 text, col2 text, col3 text);
  6. --创建资源标签
  7. postgres=# CREATE RESOURCE LABEL adt_lb0 add TABLE(tb_for_audit);
  8. --对数据库执行create操作创建审计策略
  9. postgres=# CREATE AUDIT POLICY adt1 PRIVILEGES CREATE;
  10. --对数据库执行select操作创建审计策略
  11. postgres=# CREATE AUDIT POLICY adt2 ACCESS SELECT;
  12. --仅审计记录用户dev_auditbob_audit在执行针对adt_lb0资源进行的create操作数据库创建审计策略
  13. postgres=# CREATE AUDIT POLICY adt3 PRIVILEGES CREATE ON LABEL(adt_lb0) FILTER ON ROLES(dev_audit, bob_audit);
  14. --仅审计记录用户dev_auditbob_audit,客户端工具为psqlgsqlIP地址为'10.20.30.40', '127.0.0.0/24',在执行针对adt_lb0资源进行的selectinsertdelete操作数据库创建审计策略。
  15. postgres=# 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');

相关链接

ALTER AUDIT POLICY DROP AUDIT POLICY