安全审计
安全审计模块用于监视并记录对数据库服务器的各类操作行为,通过对网络数据的分析,实时、智能地解析对数据库服务器的各种操作,来帮助用户事后生成合规报告、事故追根溯源,以进一步提高数据安全。
数据库审计技术可以监控和审计用户对数据库对象的创建、修改和删除等操作,分析内容可以精确到SQL操作语句一级;还可以根据设置的规则,智能地判断出违规操作数据库的行为,并对违规行为进行记录、报警。瀚高数据库提供权限审计、用户审计、对象审计、语句审计、系统审计和强制审计六种审计维度,方便用户选择最适合的方式配置审计策略。
数据库审计员可自定义需要审计的用户及操作行为,此过程称为审计策略配置;其中的”操作”(如CREATE
TABLE)称为审计事件(或审计策略)。安全审计模块会将特定操作记录审计日志,每一条审计产生的数据称为一条审计记录。
审计开关
瀚高数据库中对安全审计模块设置了开关。审计功能打开时,我们配置的审计策略才会生效。审计功能关闭时,数据库不会发生审计动作,也无法将审计配置应用到数据库中。
audit.enable为设置安全审计功能是否开启的总开关,取值为on和off,缺省为off。
on表示打开审计功能;
off表示关闭审计功能;
您可以通过以下几种方式打开或关闭审计开关,另外,其他安全审计相关参数也可参照如下方式修改。
在瀚高数据库启动之前,修改postgresql.conf文件,将audit.enable参数设置为on或off。
在瀚高数据库启动之后,通过SQL命令修改:
ALTER SYSTEM SET audit.enable=on;
重启服务生效
审计模式
瀚高数据库支持两种审计模式,分别为通用模式和专用模式。通过参数audit.privimode来实现,参数可选值为1,2。默认为1。1代表通用模式,表示数据库审计员有权限查看所有审计日志;2代表专用模式,表示数据库安全员有权对普通用户和数据库审计员的行为进行审计,数据库审计员有权对数据库安全员和数据库管理员的行为进行审计。
审计配置
想要对用户某行为进行审计,首先需要打开审计功能,然后再进行审计配置。
审计参数配置
下文列出了审计相关的参数,只有超级用户或数据库审计员有权限查看和配置审计参数。所有审计参数均为重启服务生效。
| 参数 | 子参数 | 参数含义 |
|---|---|---|
| audit.enable | 安全审计总开关on:表示打开安全审计off:表示关闭安全审计(默认) | |
| audit.privimode | 指定审计模式1:表示通用模式(默认)2:表示专用模式 | |
| audit.retentionpolicy | 审计日志保留策略,按时间或空间保存日志。time:按照时间方式保存日志(默认)space:按照空间方式保存日志 | |
| audit.retentiondays | 审计日志保存天数默认180天,超180天覆盖。audit.retentionpolicy=time时本参数生效 | |
| audit.detectiontime | 定时任务检测时间,将超过时间的日志删除,默认为1天。audit.retentionpolicy=time时本参数生效 | |
| audit.spacelimit | 最大允许使用空间。默认为磁盘空间,默认10G;audit.retentionpolicy=space时本参数生效。磁盘空间达到使用最大值,停止审计。 | |
| audit.spacealarm | 空间使用超阀值告警,用于指定一个百分比,默认0.8,audit.retentionpolicy=space时本参数生效 | |
| audit.archdir | 指定审计日志本地自动归档路径。 | |
| audit.remote_archdir | 指定审计日志远程自动归档路径。参数默认值为空,表示关闭远程归档。参数配置格式为:user@ip:/xxx/dir,如highgo@192.168.94,129:/tem/test启用远程归档,需要首先保证两台服务器建立互信。注:本参数为9.0.5版本新增参数。 | |
| audit.systemopers | 系统审计开关off:表示不对系统审计事件进行审计;(默认)succ:表示只对成功的系统审计事件进行审计;fail:表示只对失败的系统审计事件进行审计;all:表示成功和失败皆审计。 | |
| audit.sqlitedbpath | 配置sqilte数据库的路径默认路径:$PGDATA/pgaudit/sqlite/sqlite.db | |
| audit.monitoring | 安全监测的开关可取值on、off,默认值为off注:本功能为V9.0.5版本新增功能。 | |
| audit.mail | 阈值告警发送的邮件地址注:本功能为9.0.5版本新增功能。 |
审计策略配置
瀚高数据库提供权限审计、用户审计、对象审计、语句审计、系统审计和强制审计六种审计维度,数据库审计员可以选定某些维度对审计策略进行配置。需要注意的是,审计策略配置属于数据库级别的操作,即在当前库配置的审计策略只在当前库生效。
语句审计
语句审计指在数据库管理系统范围内,对数据库拥有的结构或模式对象进行操作时引发的事件进行审计,这类结构或模式对象并不指具体的某个结构或模式对象,而是一类结构或模式对象的泛称。一般包括数据库管理系统提供的DDL、DML、DQL、DCL、TCL等语句引发的事件。
配置语句审计:
hg_security.pg_audit_stmt(stmt_opts,whenever) |
参数说明:
stmt_opts
声明对应语句审计事件,详见下表,支持一次配置多个审计事件,多个审计事件使用英文逗号,分隔。配置all表示增加所有语句类型的权限审计配置。
whenever
审计时机。successful表示只审计成功的,fail表示只审计失败的。all或者无参数值均表示无论成功还是失败都进行审计。
取消语句审计:
hg_security.pg_noaudit_stmt(stmt_opts,whenever) |
或者
hg_security.pg_noaudit_stmt_byoid(confid) |
参数说明:
stmt_opts,whenever
参见配置语句审计。
confid
表示要取消审计的审计配置项。
语句审计事件选项:
| 语句审计stmt_opts | ||
|---|---|---|
| create domain | alter trigger | comment |
| create procedure | alter view | reset |
| create index | alter materialized view | set |
| create sequence | alter extension | truncate |
| create function | drop domain | copy to |
| create table | drop function | copy from |
| create table as | drop procedure | reindex |
| create tablespace | drop index | lock |
| create trigger | drop sequence | call |
| create view | drop table | begin |
| create materialized view | drop tablespace | commit |
| create extension | drop trigger | rollback |
| alter domain | drop view | savepoint |
| alter function | drop materialized view | roll back to |
| alter procedure | drop extension | release |
| alter index | select | start transaction |
| alter system | select into | grant |
| alter sequence | insert | revoke |
| alter table | update | rollback prepared |
| alter tablespace | delete | create resource group |
| alter resource group | drop resource group |
语句审计示例:
拥有syssao_role角色的审计管理员登录数据库;
打开安全审计开关;
highgo=# alter system set audit.enable =on; |
配置语句审计策略:审计用户创建表、删除表的事件;
highgo=> select hg_security.pg_audit_stmt('create table,drop table','all'); |
配置语句审计策略:审计用户修改系统设置的事件;
highgo=> select hg_security.pg_audit_stmt('alter system,set','all'); |
取消语句审计策略:取消用户修改系统设置的审计事件;
highgo=>select hg_security.pg_noaudit_stmt('alter system,set','all'); |
对象审计
对象审计发生在具体的对象上的DML等操作,在审计配置时需要指定对象名及其模式名,只有对已配置的对象执行正确的操作才会触发对象审计。另外,用户需要在已有数据库对象上创建对象审计策略。
配置对象审计:
hg_security.pg_audit_object(object_opts,object_type,objname,schname,whenever) |
参数说明:
object_opts
对应对象审计事件,详见下表。配置all表示增加所有语句类型的对象审计配置。
object_type
对象的类型,可取值有table、view、column、sequence、procedure、function等。
object_name
对象的名称。支持指定column名称,例如支持objname.colname的格式,指定colname,表示对该列进行审计仅当objtype为column时才需要指定,不指定时会报错。
schname
对象所属模式名称。
whenever
审计时机。successful表示只审计成功的,fail表示只审计失败的。all或者无参数值均表示无论成功还是失败都进行审计。
取消对象审计:
hg_security.pg_noaudit_object(object_opts,object_type,objname,schname,whenever) |
或者
hg_security.pg_noaudit_object_byoid(confid) |
参数说明:
object_opts,object_type,objname,schemaname,whenever
参见上条
confid
要取消审计的审计配置项
对象审计事件选项:
| 对象类型 | object_opts |
|---|---|
| table | insert |
| update | |
| delete | |
| select | |
| lock | |
| alter | |
| comment | |
| truncate | |
| alter index | |
| drop index | |
| view | insert |
| update | |
| delete | |
| select | |
| comment | |
| column | insert |
| update | |
| select | |
| sequence | select |
| comment | |
| alter | |
| drop | |
| procedure | call |
| alter | |
| drop | |
| function | select |
| alter | |
| drop |
对象审计示例:
highgo=> select |
查看审计策略
highgo=> select * from pg_audit_config; |
权限审计
权限审计是指审计数据库对象涉及的创建、删除、修改等操作引发的事件。
配置权限审计:
hg_security.pg_audit_privilege(stmt_opts,whenever) |
参数说明:
stmt_opts
对应权限审计事件,详见下表。配置all表示增加所有语句类型的权限审计配置。
whenever
审计时机。successful表示只审计成功的,fail表示只审计失败的。all或者无参数值均表示无论成功还是失败都进行审计。
取消权限审计:
hg_security.pg_noaudit_privilege(stmt_opts,whenever) |
或者
hg_security.pg_noaudit_privilege_byoid(confid) |
参数说明:
stmt_opts,whenever
参见上条
confid
要取消审计的审计配置项
权限审计事件选项:
| 权限审计stmt_opts | |
|---|---|
| role | create role |
| grant role | |
| revoke role | |
| drop role | |
| alter role | |
| user | create user |
| alter user | |
| drop user | |
| schema | create schema |
| alter schema | |
| drop schema | |
| database | create database |
| alter database | |
| drop database |
权限审计示例:
配置权限审计策略
highgo=> select hg_security.pg_audit_privilege('grant role,alter |
用户审计
用户审计是指数据库用户涉及的DDL、DML、DQL、DCL、TCL等操作行为引发的审计事件。
配置用户审计:
hg_security.pg_audit_user(stmt_opts,username,whenever)
参数说明:
stmt_opts
对应语句审计事件,详见下表
username
要审计的用户
whenever
审计时机。successful表示只审计成功的,fail表示只审计失败的。all或者无参数值均表示无论成功还是失败都进行审计
所有用户审计配置:
hg_security.pg_audit_all_user(stmt_opts,whenever)
参数说明:
stmt_opts
对应语句审计事件,详见附录,配置all表示增加所有语句类型的用户审计配置。
whenever
审计时机。successful表示只审计成功的,fail表示只审计失败的。all或者无参数值均表示无论成功还是失败都进行审计。
取消用户审计:
取消用户审计配置:
hg_security.pg_noaudit_user(stmt_opts,username,whenever) |
或者
hg_security.pg_noaudit_user_byoid(confid) |
参数说明:
stmt_opts,username,whenever
参见上条
confid
要取消审计的审计配置项
取消所有用户审计配置:
hg_security.pg_noaudit_all_user(stmt_opts,whenever)
参数说明:
stmt_opts,whenever
参见上条
用户审计事件选项:
| 用户审计stmt_opts | ||
|---|---|---|
| create domain | alter trigger | comment |
| create procedure | alter view | reset |
| create index | alter materialized view | set |
| create sequence | alter extension | truncate |
| create function | drop domain | copy to |
| create table | drop function | copy from |
| create table as | drop procedure | reindex |
| create tablespace | drop index | lock |
| create trigger | drop sequence | call |
| create view | drop table | begin |
| create materialized view | drop tablespace | commit |
| create extension | drop trigger | rollback |
| alter domain | drop view | savepoint |
| aler function | drop materialized view | rollback to |
| alter procedure | drop extension | release |
| alter index | select | start transaction |
| alter system | select into | grant |
| alter sequence | insert | revoke |
| alter table | update | rollback prepared |
| alter tablespace | delete | create resource group |
| alter resource group | drop resource group |
用户审计示例:
配置用户审计策略
highgo=> select hg_security.pg_audit_user('create domain,create |
系统审计
系统审计是指审计数据库系统行为如数据库启动、数据库停止、数据库登入登出、数据库配置文件重载等操作引发的审计事件。系统审计不支持自定义审计事件配置。瀚高数据库提供audit.systemopers系统审计开关,有off、succ、fail、all四种选项。
off:表示不对系统审计事件进行审计;
succ:表示只对成功的系统审计事件进行审计;
fail:表示只对失败的系统审计事件进行审计;
all:表示成功和失败的系统审计事件皆审计。
| 操作类型 | sys_opts |
|---|---|
| 数据库启动 | start |
| 数据库停止 | stop |
| 数据库登入 | login |
| 数据库登出 | logout |
| 数据库配置文件重载 | reload |
| 数据库GUC参数的修改 | alter_guc |
| 主备切换 | SWITCH OVER |
| FAILOVER | |
| 打开文件失败 | OPEN FILE FAIL |
| 死锁 | DEAD LOCK |
| 流复制 | WALSENDER CONN |
| WALSENDER EXIT | |
| 可信信道 | CHANNEL |
| 主备GUC同步 | HGHAC SYNC GUC |
| 连接数超限 | LOGIN |
| 日志磁盘满 | LOG DISK FULL |
| wal归档失败 | EXEC CMD FAIL |
| 审计磁盘空间满 | DISK FULL |
| 审计磁盘已达上限 | SPACE LIMIT |
| 审计磁盘使用告警 | SPACE ALARM |
| wal重放 | RECOVERY DATA |
| 会话锁定和会话解锁 | Lock_current_session/unlock_current_session |
| pgagent启动和关闭 | START/STOP PGAGENT |
强制审计
强制审计指的是记录安全审计开关的启动和关闭两种行为引发的审计事件。当用户修改审计总开关audit.enable时,就会触发强制审计。强制审计事件不支持用户自定义。
查看审计策略
提供pg_audit_config系统表存储用户已配置的审计策略,超级用户或数据库审计员有权限查看所有审计策略。一个审计配置项对应系统表中的一条记录。当配置用户审计指定了多个用户名,则一个用户名形成一个审计配置项。
审计配置清空
提供hg_security.pg_clean_audit_config()函数,用于清空审计配置,超级用户或数据库审计员有权限做清空操作。
审计配置删除
提供hg_security.pg_delete_audit_config(confid)函数,confid表示审计配置项ID,用于删除审计配置,超级用户或数据库审计员有权限做删除操作。
审计记录
审计信息存储
瀚高数据库审计信息存储在审计表hg_security.pg_audit_log中,对于审计事件无法保存到数据库表中的特殊的事件,当HGDB恢复正常运行后,通过外部表访问的方式来读取审计表hg_security.sqlite_audit_log。
另外,当用户配置了语句审计alter table,同时配置了对象审计table
alter,那么当用户触发该审计事件时,会在审计表hg_security.pg_audit_log中产生2条审计记录,但是2条审计记录的审计类型是不同的。
审计记录查询
审计策略配置和审计日志查询都属于数据库级别的操作。数据库审计员或数据库安全员可以查看用户在当前库配置的审计策略或触发的审计记录。假如我们在testdb库中配置了用户审计策略”pg_audit_user(‘all’,’zhangsan’,’all’);”然后zhangsan用户在testdb库中做了一些操作。那么我们可以登录testdb这个库,查询hg_security.pg_audit_log表,即可以看到zhangsan用户触发的审计操作。
审计记录包含以下信息:
| 列名 | 说明 |
|---|---|
| confid | 审计配置项OID |
| sessionoid | 会话ID |
| username | 用户/角色标识及所属组名称 |
| useroid | 用户/角色标识及所属组OID |
| audittime | 事件的日期和时间 |
| result | 事件结果 |
| namespacename | 数据库模式和对象名称 |
| namespaceid | 数据库模式和对象标识 |
| classid | 对象或用户所在系统表OID |
| objecttype | 对象类型 |
| audittype | 审计类型 |
| actionname | 操作类型 |
| clientmac | 客户端MAC地址 |
| clientip | 客户端IP |
| clientport | 客户端端口号 |
| clientname | 客户端名称 |
| clientappname | 客户端程序名称 |
| sqltext | 执行的命令 |
| errtext | 执行失败时的错误消息 |
| commandid | 事务相关ID |
| authmethod | 认证方式 |
| colname | 列名 |
| privlevel | 权限级别 |
| roleoid | 角色对象OID |
| rolename | 角色对象名称 |
| objectoid | 对象OID |
| objectname | 对象名称 |
查看审计日志所占磁盘情况
可以通过配置audit.spacelimit、audit.spacealarm参数来限制审计日志所占磁盘空间,分为如下3种情况:
当审计日志使用空间到达audit.spacealarm值时,产生审计告警;
当审计日志使用空间到达audit.spacelimit值时,产生审计告警,并暂停审计;
当审计日志的磁盘空间已满,产生审计告警,并暂停审计;
提供hg_security.show_audit_diskinfo视图用于查看审计日志所占磁盘情况,视图信息如下
| disk_size | disk_used | disk_used% | Space_limit | Table_used | Avail | Table_used% | Alarm |
|---|---|---|---|---|---|---|---|
| 磁盘大小 | 已使用磁盘空间 | 已使用磁盘百分比 | 审计日志允许使用大小 | 审计日志已使用空间大小 | 审计日志剩余可使用空间大小 | 使用百分比 | 告警值 |
管理审计记录
审计记录保留策略
瀚高数据库支持审计日志所在的磁盘空间管理,审计日志保留策略可选时间和空间两个维度。使用方法详见9.3.1章节audit.retentionpolicy相关内容。
清空、删除审计表
支持由数据库审计员用户清空、删除审计表,通过内置函数hg_security.pg_clean_auditlog()实现审计表清空;通过内置函数hg_security.pg_delete_auditlog(timestamp
endtime)来实现审计表删除数据,其中参数endtime指定审计日志的时间,表示删除该时间点之前的审计日志。如果同时配置了保留策略那么审计保留策略优先,保留策略内的数据记录将不会被删除。
审计日志归档
瀚高数据库管理系统V9.0.5之前的版本支持审计日志的本地自动归档和手动归档,V9.0.5及之后的版本新增支持审计日志的远程自动归档。
配置audit.archdir参数指定审计日志本地自动归档路径,即启用审计日志本地自动归档功能;配置audit.remote_archdir参数即启用审计日志远程自动归档功能,审计日志将会定期备份至指定的远端服务目录中。参数使用情况详见”审计参数配置”章节。
当配置本地自动归档和远程自动归档后,系统将使用copy的方式整点执行归档操作,当前归档文件会循环覆盖前一个归档文件。
提供函数hg_security.pg_audit_file_archive()用于审计日志的手动归档,通用模式下数据库审计员执行该函数,表示将审计日志归档到audit.archdir配置的归档目录下;专用模式下数据库安全员和数据库审计员均可执行该函数,表示将对应被审计角色的审计日志归档到audit.archdir配置的归档目录下,如果未设置归档目录,则审计日志归档操作执行失败。
安全监测
安全监测指在基础审计功能的基础上,按照用户定义的规则实时的对数据库系统进行监测。
安全监测的监测目标是已配置的审计事件,当监测发现目标审计事件后,生成对应的安全事件;随后按照用户给出的规则判断此安全事件是否达到阈值,若达到阈值则根据此安全事件的等级进行不同的处理。
数据库审计员或超级用户有权限通过一系列SQL内置函数来创建、修改和删除监测规则。
安全监测功能是V9.0.5版本新增功能。
创建安全监测规则
安全监测规则需要在已有审计配置的基础上进行创建。
创建安全监测规则:
hg_security.pg_create_secmon_rule(rulename text, |
参数说明:
rulename
规则名称,由用户自己定义
audconfoid
对应已存在的审计配置id
monmode
审计配置规则的监测模式
可选值为successful、faild、all
分别表示监测当前审计事件的成功、失败和所有的情况
此处允许与当前审计事件的审计实际不一致
enabled
安全监测规则是否启动
返回值说明:
returns oid
返回所创建监测规则的id
修改安全监测规则
hg_security.pg_alter_secmon_rule(ruleoid oid, |
参数说明:
ruleoid
被修改监测规则的oid
rulename
规则名称
monmode
修改监测模式,无参数值表示保留原值
enabled
安全监测规则是否启动,无参数值表示保留原值
返回值说明:
returns oid
返回所修改监测规则的id
删除安全监测规则
hg_security.pg_drop_secmon_rule(ruleoid oid
)
参数说明:
ruleoid
所删除监测规则的oid
返回值说明:
returns oid
返回所删除监测规则的id
监测规则的存储
提供系统表pg_secmon_rule用于存储用户创建的安全监测规则。系统表里记录的内容包括规则名称,审计配置id,安全监测模式等信息。pg_secmon_rule表中记录的安全监测模式与之前的审计时机相同分别记为成功(”
s “)、失败(” f “)和所有(” a “)。
监测历史的存储
提供普通表hg_security.pg_secmon_history用于存储安全监测的历史记录,触发安全规则的审计事件均被记录到该表中。表中记录的内容包括规则oid、审计配置id、操作类型、会话id、安全事件发生的时间、命令、安全检测规则名称等信息。
安全监测阈值
数据库审计员或超级用户有权限设置安全监测规则的阈值,一旦触发安全阈值,数据库会采取不同的行为对用户进行告警。
安全监测阈值功能是V9.0.5版本新增功能。
阈值的配置形式
安全监测阈值分为3种形式,我们在创建一条安全监测阈值时,只能选择一种形式的阈值进行创建。
- 最大值阈值
一段时间间隔内,发生同一安全事件的次数。
- 序列阈值
一段时间间隔内,同一session连续发生一系列安全事件。
- 一次性阈值
包括基线阈值(ALTER SYSTEM)、重要时刻、重要列。
阈值的等级
安全监测阈值分为4个等级,分别对应不同的数据库行为及采取的操作:
1级:服务器日志形式报警。
2级:服务器日志形式报警,邮件形式报警。
3级:服务器日志形式报警,邮件形式报警,结束对应SESSION。
4级:服务器日志形式报警,邮件形式报警,结束对应SESSION, 并且锁定用户。
创建安全监测阈值
hg_security.pg_create_secmon_threshold(thrname text, |
参数说明:
thrname
阈值名称,用户自己定义
secmonseq
对应一个或一组监测规则id,由逗号分隔。配置一组监测规则id代表序列形式的阈值。
interval
间隔时间(单位分钟)
maxtimes
间隔时间内发生安全事件的最大次数(>0),配置为序列阈值时要求最大次数只能设置为1。
basename
GUC参数名称,基线阈值目前只支持alter system
basevalue
GUC参数值,基线阈值目前只支持alter system
starttime
一次性阈值中重要时刻的起始时间
endtime
一次性阈值中重要时刻的起始时间
columns
重要列,审计配置为对象审计才可设置重要列。
level
阈值等级,用于设置触发阈值时的数据库后续处理方式。
enabled
阈值是否启动
返回值说明:
returns oid
返回所创建监测阈值的id
修改安全监测阈值
hg_security.pg_alter_secmon_threshold(throid oid, |
参数说明:
throid
被修改阈值的id
thrname
阈值名称,用户自己定义
interval
间隔时间(单位分钟)
maxtimes
间隔时间内发生安全事件的最大次数(>0),配置为序列阈值时要求最大次数只能设置为1。
basename
GUC参数名称,基线阈值目前只支持alter system
basevalue
GUC参数值,基线阈值目前只支持alter system
starttime
一次性阈值中重要时刻的起始时间
endtime
一次性阈值中重要时刻的起始时间
columns
重要列,审计配置为对象审计才可设置重要列。
level
阈值等级,用于设置触发阈值时的数据库后续处理方式。
enabled
阈值是否启动
返回值说明:
returns oid
返回所修改监测阈值的id
删除安全监测阈值
hg_security.pg_drop_secmon_threshold(throid oid) |
参数说明:
throid
被删除监测阈值的id
返回值说明:
returns oid
返回所删除监测阈值的id
阈值配置的存储
提供系统表pg_secmon_threshold用于存储用户创建的安全监测阈值。系统表里记录的内容包括阈值名称、监测规则id、触发安全监测阈值的时间、阈值等级等信息。
阈值历史记录的存储
提供表hg_security.pg_secmon_thrhis用于存储已触发安全监测阈值的审计事件等信息。
清空安全监测规则及阈值配置
提供内置函数hg_security.pg_clean_secmon_config()用于清空所有安全监测配置和阈值配置。
清空安全监测历史及阈值检查结果
提供内置函数hg_security.pg_clean_secmon_history()用于清空所有安全监测历史和阈值检查结果。
安全监测及阈值配置方法
一次性阈值之重要时刻的监测示例
打开安全审计和安全监测开关,重启数据库生效
highgo=> alter system set audit.enable =on; |
查看审计配置系统表,获取confid
highgo=> select confid from pg_audit_config where |
创建安全监测规则
highgo=> select * from |
查看安全监测配置系统表,获取ruleoid
highgo=> select ruleoid from pg_secmon_rule where confid = 32779; |
创建安全监测阈值
highgo=> select * from |
查看安全监测阈值配置系统表
highgo=> select * from pg_secmon_threshold ; |
触发重要时刻阈值
highgo=# create table tb1(id int); |
查看审计日志
highgo=> select * from hg_security.pg_audit_log; |
查看安全监测历史
highgo=> select * from hg_security.pg_secmon_history; |
查看安全监测阈值历史
highgo=> select * from hg_security.pg_secmon_thrhis; |
一次性阈值之基线阈值的监测示例
配置语句审计策略
highgo=> select * from hg_security.pg_audit_stmt('alter system'); |
(1 行记录)
查看审计配置系统表,获取confid
highgo=> select confid from pg_audit_config where actionname='ALTER |
创建安全监测规则
highgo=> select * from |
查看安全监测配置系统表,获取ruleoid
highgo=> select ruleoid from pg_secmon_rule where confid = 32786; |
创建安全监测阈值
highgo=> select * from |
查看安全监测阈值配置系统表
highgo=> select * from pg_secmon_threshold ; |
触发基线阈值
highgo=> alter system set audit.retentiondays = 60; |
查看审计日志
highgo=> select * from hg_security.pg_audit_log; |
查看安全监测历史
highgo=> select * from hg_security.pg_secmon_history; |
查看安全监测阈值历史
highgo=> select * from hg_security.pg_secmon_thrhis; |
一次性阈值之重要列阈值的监测示例
配置对象审计策略
highgo=# create table tb2(id int); |
查看审计配置系统表,获取confid
highgo=> select confid from pg_audit_config where actionname='SELECT' |
创建安全监测规则
highgo=> select * from |
查看安全监测配置系统表,获取ruleoid
highgo=> select ruleoid from pg_secmon_rule where confid = 32792; |
创建安全监测阈值
highgo=> select * from |
查看安全监测阈值配置系统表
highgo=> select * from pg_secmon_threshold ; |
触发重要列阈值
highgo=# select id from tb2; |
查看审计日志
highgo=> select * from hg_security.pg_audit_log; |
查看安全监测历史
highgo=> select * from hg_security.pg_secmon_history; |
查看安全监测阈值历史
highgo=> select * from hg_security.pg_secmon_thrhis; |
最大值阈值的监测示例
配置权限审计策略
highgo=> select * from hg_security.pg_audit_privilege('create |
查看审计配置系统表,获取confid
highgo=> select confid from pg_audit_config where actionname='CREATE |
创建安全监测规则
highgo=> select * from |
查看安全监测配置系统表,获取ruleoid
highgo=> select ruleoid from pg_secmon_rule where confid = 32796; |
创建安全监测阈值
highgo=> select * from |
查看安全监测阈值配置系统表
highgo=> select * from pg_secmon_threshold; |
触发最大值阈值
create role test1; |
查看审计日志
highgo=> select * from hg_security.pg_audit_log; |
查看安全监测历史
highgo=> select * from hg_security.pg_secmon_history; |
查看安全监测阈值历史
highgo=> select * from hg_security.pg_secmon_thrhis; |
序列阈值的监测示例
配置语句审计策略
highgo=> select * from hg_security.pg_audit_stmt('create table'); |
查看审计配置系统表,获取confid
highgo=> select confid from pg_audit_config where actionname='CREATE |
创建安全监测规则
highgo=> select * from |
根据创建安全监测规则返回的ruleoid,创建安全监测阈值
highgo=> select * from |
查看安全监测阈值配置系统表
highgo=> select * from pg_secmon_threshold ; |
触发序列阈值
highgo=# create table test4 (id int); |
查看审计日志
highgo=> select * from hg_security.pg_audit_log; |
查看安全监测历史
highgo=> select * from hg_security.pg_secmon_history; |
查看安全监测阈值历史
highgo=> select * from hg_security.pg_secmon_thrhis; |