1 数据库审计对象的背景
从GaussDB产品文档来理解,这个对象指逻辑对象,如database,schem,user,SQLpatch,Table等等。
2 audit_system_object参数定义
通过修改该配置参数的值,可以只审计需要的数据库对象的操作。
该参数的值由29个二进制位的组合求出,这29个二进制位分别代表29类数据库对象。如果对应的二进制位取值为0,表示不审计对应的数据库对象的CREATE、DROP、ALTER等操作;取值为1,表示审计对应的数据库对象的CREATE、DROP、ALTER等操作。
用于记录SQL PATCH的参数存在特殊性,如果对该对象进行审计且audit_dml_state_select也开启时,对于一条SQL PATCH操作的审计日志会作为DML和DDL被记录两次。
默认值:67121159(十进制),对应二进制为:00100 0000 0000 0011 0000 0000 0111,表示对DATABASE、SCHEMA、USER、SQLPatch这四种数据库对象的DDL操作进行审计。
3 audit_system_object取值含义说明
二进制位 |
含义 |
取值说明 |
---|---|---|
第0位 |
是否审计DATABASE对象的CREATE、DROP、ALTER操作。 |
|
第1位 |
是否审计SCHEMA对象的CREATE、DROP、ALTER操作。 |
|
第2位 |
是否审计USER对象的CREATE、DROP、ALTER操作。 |
|
第3位 |
是否审计TABLE对象的CREATE、DROP、ALTER、TRUNCATE操作。 |
|
第4位 |
是否审计INDEX对象的CREATE、DROP、ALTER操作。 |
|
第5位 |
是否审计VIEW/MATVIEW对象的CREATE、DROP操作。 |
|
第6位 |
是否审计TRIGGER对象的CREATE、DROP、ALTER操作。 |
|
第7位 |
是否审计PROCEDURE/FUNCTION对象的CREATE、DROP、ALTER操作。 |
|
第8位 |
是否审计TABLESPACE对象的CREATE、DROP、ALTER操作。 |
|
第9位 |
是否审计RESOURCE POOL对象的CREATE、DROP、ALTER操作。 |
|
第10位 |
是否审计WORKLOAD对象的CREATE、DROP、ALTER操作。 |
|
第11位 |
是否审计SERVER对象的CREATE、DROP、ALTER操作 |
|
第12位 |
保留 |
- |
第13位 |
保留 |
- |
第14位 |
是否审计ROW LEVEL SECURITY对象的CREATE、DROP、ALTER操作。 |
|
第15位 |
是否审计TYPE对象的CREATE、DROP、ALTER操作。 |
|
第16位 |
是否审计TEXT SEARCH对象(CONFIGURATION和DICTIONARY)的CREATE、DROP、ALTER操作。 |
|
第17位 |
是否审计DIRECTORY对象的CREATE、DROP、ALTER操作。 |
|
第18位 |
是否审计SYNONYM对象的CREATE、DROP、ALTER操作。 |
|
第19位 |
是否审计SEQUENCE对象的CREATE、DROP、ALTER操作。 |
|
第20位 |
是否审计CMK、CEK对象的CREATE、DROP操作。 |
|
第21位 |
是否审计PACKAGE对象的CREATE、DROP、ALTER操作。 |
|
第22位 |
是否审计MODEL对象的CREATE、DROP操作。 |
|
第23位 |
预留位。 |
- |
第24位 |
是否审计对gs_global_config全局对象的ALTER、DROP操作。 |
|
第25位 |
是否审计FOREIGN DATA WRAPPER对象的CREATE、DROP、ALTER操作,目前仅支持CREATE功能,ALTER 、DROP 功能暂不支持。 |
|
第26位 |
是否审计SQL PATCH对象的CREATE、ENABLE、DISABLE、DROP操作。 |
|
第27位 |
是否审计EVENT对象的CREATE、ALTER、DROP操作。 |
|
第28位 |
是否审计DBLINK对象的CREATE、ALTER、DROP操作。目前DATABASE LINK功能暂不支持。 |
|
3 audit_system_object值的修改
默认值:7121159 对应的二进制:0100000000000011000000000111
如果我将第3位(注:从0开始计位数)改为1:对应功能位:是否审计TABLE对象的CREATE、DROP、ALTER、TRUNCATE操作。
即:0101000000000011000000000111
将其转换为十进制:500 030 007
gs_guc reload -Z coordinator -Z datanode -N all -I all -c "audit_system_object=500030007"
执行结果:
验证结果:
audit_system_object改为500030007
到此,是否审计TABLE对象的CREATE、DROP、ALTER、TRUNCATE操作的功能开启。
4 批注
GaussDB数据库对象的修改审计采用28位的二进制表示,在数据安全环境较高的情况下需要按需求适当设置。