南大通用GBase 8c提供审计功能,支持用户配置审计项、查看审计日志、启停审计功能等操作,增强了数据库安全,优化了动态加载特性。
审计概述
关于审计功能,用户需要了解以下几点内容
- 审计总开关audit_enabled支持动态加载。在数据库运行期间修改该配置项的值会立即生效,无需重启数据库。默认值为on,表示开启审计功能。
- 除了审计总开关,各个审计项也有对应的开关。只有开关开启,对应的审计功能才能生效。
- 各审计项的开关支持动态加载。在数据库运行期间修改审计开关的值,不需要重启数据库便可生效。
配置审计项
常用的审计配置项如下:
配置项 | 描述 |
用户登录、注销审计 | 参数:audit_login_logout 默认值为7,表示开启用户登录、退出的审计功能。设置为0表示关闭用户登录、退出的审计功能。不推荐设置除0和7之外的值。 |
数据库启动、停止、恢复和切换审计 | 参数:audit_database_process 默认值为1,表示开启数据库启动、停止、恢复和切换的审计功能。 |
用户锁定和解锁审计 | 参数:audit_user_locked 默认值为1,表示开启审计用户锁定和解锁功能。 |
用户访问越权审计 | 参数:audit_user_violation 默认值为0,表示关闭用户越权操作审计功能。 |
授权和回收权限审计 | 参数:audit_grant_revoke 默认值为1,表示开启审计用户权限授予和回收功能。 |
对用户操作进行全量审计 | 参数:full_audit_users 默认值为空字符串,表示采用默认配置,未配置全量审计用户。 |
不需要审计的客户端名称及IP地址 | 参数:no_audit_client 默认值为空字符串,表示采用默认配置,未将客户端及IP加入审计黑名单。 |
数据库对象的CREATE,ALTER,DROP操作审计 | 参数:audit_system_object 默认值为67121159,表示只对DATABASE、SCHEMA、USER、DATA SOURCE这四类数据库对象的CREATE、ALTER、DROP操作进行审计。 |
具体表的INSERT、UPDATE和DELETE操作审计 | 参数:audit_dml_state 默认值为0,表示关闭具体表的DML操作(SELECT除外)审计功能。 |
SELECT操作审计 | 参数:audit_dml_state_select 默认值为0,表示关闭SELECT操作审计功能。 |
COPY审计 | 参数:audit_copy_exec 默认值为1,表示开启copy操作审计功能。 |
存储过程和自定义函数的执行审计 | 参数:audit_function_exec 默认值为0,表示不记录存储过程和自定义函数的执行审计日志。 |
执行白名单内的系统函数审计 | 参数:audit_system_function_exec 默认值为0,表示不记录执行系统函数的审计日志。 |
SET审计 | 参数:audit_set_parameter 默认值为0,表示关闭SET审计功能。 |
事务ID记录 | 参数:audit_xid_info 默认值为0,表示关闭审计日志记录事务ID功能。 |
操作步骤
(1)开启DML相关审计。
gs_guc reload -N all -I all -c "audit_dml_state = 1"
gs_guc reload -N all -I all -c "audit_dml_state_select = 1"
(2)登录数据库,创建表并插入数据,再查询。
create table t1 (id int, c1 int);
insert into t1 values (1, 1);
select * from t1;
(3)查询审计记录。
select detail_info, type, result from pg_query_audit('2024-09-05 18:00:00','2024-09-05 20:00:00') where type in ('dml_action', 'dml_action_select') and detail_info like '%t1%';
返回如下信息:
GBase 8c数据库支持的审计项包括用户登录和注销审计、数据库启动和停止审计、用户锁定和解锁审计等。这些审计项覆盖了数据库的各个方面,足以应对大部分运维场景。