审计日志记录用户对数据库的启停、连接、DDL、DML、DCL等操作。
客户价值
审计日志机制主要增强数据库系统对非法操作的追溯及举证能力。
特性描述
数据库安全对数据库系统来说至关重要。openGauss将用户对数据库的所有操作写入审计日志。数据库安全管理员可以利用这些日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。
数据库审计
⚫ 审计日志记录用户对数据库的启停、连接、DDL、DML、DCL等操作。审计日志机制主 要增强数据库系统对非法操作的追溯及举证能力。
⚫ 用户可以通过参数配置对哪些语句或操作记录审计日志。
⚫ 审计日志记录事件的时间、类型、执行结果、用户名、数据库、连接信息、数据库对象、 数据库实例名称和端口号以及详细信息。支持按起止时间段查询审计日志,并根据记录 的字段进行筛选。
⚫ 数据库安全管理员可以利用这些日志信息,重现导致数据库现状的一系列事件,找出非
法操作的用户、时间和内容等。
统一审计机制
⚫ 除上述数据审计功能外,还支持统一审计机制。统一审计机制是一种通过定制化制定审
计策略而实现高效安全审计管理的一种技术。当管理员定义审计对象和审计行为后,用
户执行的任务如果关联到对应的审计策略,则生成对应的审计行为,并记录审计日志。
定制化审计策略可涵盖常见的用户管理活动,DDL和DML行为,满足日常审计诉求。
统一审计
⚫ 统一审计(Unified Auditing)利用策略和条件在数据库内部有选择地进行审计,管理员 可以对数据库资源或资源标签统一地配置审计策略,从而达到简化管理、针对性地生成 审计日志、减少审计日志冗余、提高管理效率的目的。
⚫ 管理员可以定制化的为操作行为或数据库资源配置审计策略,该策略针对特定的用户场 景、用户行为或数据库资源进行审计。在开启了统一审计功能后,当用户访问数据库时, 系统将根据用户身份信息如:访问IP、客户端工具、用户名来匹配相应的统一审计策略, 之后根据策略信息对用户行为按照访问资源(LABEL)和用户操作类型(DML|DDL)进 行统一审计。
⚫ 统一审计的目的是将现有的传统审计行为转变为针对性的跟踪审计行为,将目标之外的
行为排除在审计之外,从而简化了管理,提高了数据库生成审计数据的安全性。
创建统一审计策略
⚫ 只有具有poladmin,sysadmin或初始用户才能进行统一审计策略的创建。同时需开启安
全策略开关,即设置GUC参数enable_security_policy=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 [, ... ] ) ) [, ... ] }
创建统一审计策略示例
⚫ 步骤一:创建dev_audit和bob_audit用户。
CREATE USER dev_audit PASSWORD 'dev@1234';
CREATE USER bob_audit password 'bob@1234';
⚫ 步骤二:创建表tb_for_audit。
CREATE TABLE tb_for_audit(col1 text, col2 text, col3 text);
⚫ 步骤三:创建资源标签。
CREATE RESOURCE LABEL adt_lb0 add TABLE(tb_for_audit);
⚫ 步骤四:对数据库执行create操作创建审计策略。
CREATE AUDIT POLICY adt2 ACCESS SELECT;
⚫ 步骤五:仅审计记录用户dev_audit和bob_audit在执行针对adt_lb0资源进行的create操 作数据库创建审计策略。
CREATE AUDIT POLICY adt3 PRIVILEGES CREATE ON LABEL(adt_lb0) FILTER ON ROLES(dev_audit, bob_audit);
⚫ 仅审计记录用户dev_audit和bob_audit,客户端工具为psql和gsql,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');
修改、删除统一审计策略
⚫ 只有具有poladmin,sysadmin或初始用户才能进行统一审计策略的修改及删除。
ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ADD | REMOVE } { [ privilege_audit_clause ] [ access_audit_clause ] };
ALTER AUDIT POLICY [ IF EXISTS ] policy_name MODIFY ( filter_group_clause );
ALTER AUDIT POLICY [ IF EXISTS ] policy_name DROP FILTER;
ALTER AUDIT POLICY [ IF EXISTS ] policy_name COMMENTS policy_comments;
ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ENABLE | DISABLE };
DROP AUDIT POLICY [IF EXISTS] policy_name;
统一审计相关系统表
⚫ GS_AUDITING_POLICY:GS_AUDITING_POLICY系统表记录统一审计的主体信息,每条 记录对应一个设计策略。
⚫ GS_AUDITING_POLICY_ACCESS:GS_AUDITING_POLICY_ACCESS系统表记录与DML数 据库相关操作的统一审计信息。
⚫ GS_AUDITING_POLICY_FILTERS:GS_AUDITING_POLICY_FILTERS系统表记录统一审计 相关的过滤策略相关信息,每条记录对应一个设计策略。
⚫ GS_AUDITING_POLICY_PRIVILEGES:GS_AUDITING_POLICY_PRIVILEGES系统表记录
统一审计DDL数据库相关操作信息,每条记录对应一个设计策略。




