【openGauss】openGauss的ddl审计日志
一、查审计参数,audit_enabled=on,开启审计功能
-- 查审计参数,audit_enabled=on,开启审计功能
select name,setting,unit,context from pg_settings where name ~* 'audit_enabled';
二、参数说明
2.1、audit_system_object参数详解
2.1.1、audit_system_object参数说明
-- audit_system_object
/*
参数说明:该参数表示是否对数据库对象的CREATE、DROP、ALTER等操作进行审
计。数据库对象包括DATABASE、USER、SCHEMA、TABLE等。通过修改该配置参数
的值,可以只审计需要的数据库对象的操作。参数类型:整型
*/
select name,setting,unit,context from pg_settings where name ~* 'audit_system_object';
select name,setting,unit,context from pg_settings where name ~* 'audit_file_remain_time';
select name,setting,unit,context from pg_settings where name ~* 'audit_space_limit';
2.1.2、audit_system_object的值说明
-- audit_system_object的值说明
-- 默认,DATABASE、SCHEMA、USER
十进制:67121159
二进制:0100000000000011000000000111
-- 开启表,DATABASE、SCHEMA、USER、TABLE
十进制:67121167
二进制:0100000000000011000000001111
-- 开启表和索引,DATABASE、SCHEMA、USER、TABLE、INDEX
十进制:67121183
二进制:0100000000000011000000011111
2.1.3、查询审计日志SQL
-- 查询SQL
select detail_info,*
from pg_query_audit('2025-03-27 00:00:00','2025-03-28 23:59:59')
where 1=1
and type !~* 'login_|user_|_schema|copy_from|internal_event'
and type ~* 'ddl'
-- and username !~ 'jdbc_etl_in|jdbc_accmc_in'
and detail_info ~* '^create|^drop|^truncate|^alter'
-- and username = 'fin_tr_plan'
-- and object_name = 'test1'
;
三、参考资料
audit_system_object
参数说明:该参数决定是否对openGauss数据库对象的CREATE、DROP、ALTER操作进行审计。openGauss数据库对象包括DATABASE、USER、schema、TABLE等。通过修改该配置参数的值,可以只审计需要的数据库对象的操作。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0~67108863
•0代表关闭openGauss数据库对象的CREATE、DROP、ALTER操作审计功能。
•非0代表只审计openGauss的某类或者某些数据库对象的CREATE、DROP、ALTER操作。
取值说明:
该参数的值由26个二进制位的组合求出,这26个二进制位分别代表openGauss的26类数据库对象。如果对应的二进制位取值为0,表示不审计对应的数据库对象的CREATE、DROP、ALTER操作;取值为1,表示审计对应的数据库对象的CREATE、DROP、ALTER操作。这26个二进制位代表的具体审计内容请参见表1。
默认值:12295
audit_system_object取值含义说明:
audit_dml_state
参数说明:这个参数决定是否对具体表的INSERT、UPDATE、DELETE操作进行审计。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0、1。
•0表示关闭具体表的DML操作(SELECT除外)审计功能。
•1表示开启具体表的DML操作(SELECT除外)审计功能。
默认值:0
audit_dml_state_select
参数说明:这个参数决定是否对SELECT操作进行审计。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0、1。
•0表示关闭SELECT操作审计功能。
•1表示开启SELECT审计操作功能。
默认值:0
audit_function_exec
参数说明:这个参数决定在执行存储过程、匿名块或自定义函数(不包括系统自带函数)时是否记录审计信息。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0、1。
•0表示关闭过程或函数执行的审计功能。
•1表示开启过程或函数执行的审计功能。
默认值:0
audit_copy_exec
参数说明:这个参数决定是否对COPY操作进行审计。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0、1。
•0表示关闭COPY审计功能。
•1表示开启COPY审计功能。
默认值:1
audit_set_parameter
参数说明:这个参数决定是否对SET操作进行审计。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0、1。
•0表示关闭SET审计功能。
•1表示开启SET审计功能。
默认值:1
audit_xid_info
参数说明:这个参数决定是否在审计日志字段detail_info中记录SQL语句的事务ID。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0、1。
•0表示关闭审计日志记录事务ID功能。
•1表示开启审计日志记录事务ID功能。
默认值:0
如果开启此开关,审计日志中detail_info信息则以xid开始,例如:
detail_info: xid=14619 , create table t1(id int);
对于不存在事务ID的审计行为,记录xid=NA。
enableSeparationOfDuty
参数说明:是否开启三权分立选项。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
•on表示开启三权分立。
•off表示不开启三权分立。
默认值:off
enable_nonsysadmin_execute_direct
参数说明:是否允许非系统管理员和非监控管理员执行EXECUTE DIRECT ON语句。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
•on表示允许任意用户执行EXECUTE DIRECT ON语句。
•off表示只允许系统管理员和监控管理员执行EXECUTE DIRECT ON语句。
默认值:off
enable_access_server_directory
参数说明:是否开启非初始用户创建、修改和删除DIRECTORY的权限。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
•on表示开启非初始用户创建、修改和删除DIRECTORY的权限。
•off表示不开启非初始用户创建、修改和删除DIRECTORY的权限。
默认值:off
•出于安全考虑,默认情况下,只有初始用户才能够创建、修改和删除DIRECTORY对象。
•如果开启了enable_access_server_directory,具有SYSADMIN权限的用户和继承了内置角色gs_role_directory_create权限的用户可以创建directory对象;具有SYSADMIN权限的用户、directory对象的属主、被授予了该directory的DROP权限的用户或者继承了内置角色gs_role_directory_drop权限的用户可以删除directory对象;具有SYSADMIN权限的用户和directory对象的属主可以修改directory对象的所有者,且要求该用户是新属主的成员。