文章目录
环境
系统平台:银河麒麟svs(X86_64),银河麒麟(龙芯)svs,银河麒麟(飞腾)svs,银河麒麟 (X86_64),银河麒麟 (飞腾),银河麒麟 (鲲鹏),银河麒麟 (海光),银河麒麟 (龙芯)
版本:9.0.1,4.5.10,4.5.9,4.5.8,4.5.7,4.5.6,4.3.4.9,4.3.4.8,4.3.4.7,4.3.4.6,4.3.4.5,4.3.4.4,4.3.4.3,4.3.4.2
文档用途
本文适用于指导Highgo Database数据库审计功能相关配置。
详细信息
目前瀚高数据库支持审计功能的版本有安全版v4.3.4.x、v4.5.x和企业版v9.0.x,各版本之间略有差异,具体查看与修改方式如下:
安全版v4.5.x版本
1、查看审计策略配置
审计管理员syssao可以通过"select show_audit_param();"来查看当前的审计策略配置
sql
[root@localhost ~]# psql highgo syssao --登录syssao用户
highgo=> select show_audit_param(); --执行sql查看审计策略
show_audit_param
------------------------------------
hg_audit = on, +
hg_audit_analyze = off, +
hg_audit_alarm = email, +
hg_audit_alarm_email = +
hg_audit_logsize = 1GB, +
hg_audit_keep_days = 180, +
hg_audit_full_mode = 1 +
hg_audit_file_archive_mode = off, +
hg_audit_file_archive_dest = +
每个参数的说明如下:
hg_audit:审计总开关,默认为 on。
hg_audit_analyze:审计分析开关,on 表示需要检查用户配置的审计事件风险等级,并根据风险等级进行处理,off 表示只记录审计记录,而不处理风险等级,默认为off.
hg_audit_alarm:审计告警方式,当前只支持 email 方式,即当需要进行审计告警时,发送邮件到 hg_audit_alarm_email 所配置的邮箱.
hg_audit_alarm_email:审计告警邮箱.
hg_audit_logsize:生成的审计文件大小,可配置的范围为 16MB~1GB;默认为16MB。
hg_audit_file_archive_mode:审计自动归档模式的开关,on 表示打开审计文件自动归档,审计归档进程扫描 hgaudit/audit_archive_ready 下的 ready 文件,把相应的审计日志文件归档到 hg_audit_file_archive_dest 指定的路径下。默认为 off
hg_audit_file_archive_dest:审计归档路径,只支持绝对路径。设定的路径必须存在且数据库运行用户对其有写权限。
2、修改审计策略配置
审计管理员syssao可以通过"select set_audit_param('参数','选项');"修改审计策略配置,修改后重启数据库生效;
修改示例:
sql
--登录syssao用户
[root@localhost ~]# psql highgo syssao
--开启审计日志(关闭审计日志将on改为off)
highgo=> select set_audit_param('hg_audit','on');
set_audit_param
---------------------------------
set configuration successfully.
--开启审计分析,建议为off,打开后会使审计日志急速膨胀。
highgo=> select set_audit_param('hg_audit_analyze','on');
set_audit_param
---------------------------------
set configuration successfully.
(1 行记录)
--单个审计日志文件大小限制为60MB
highgo=> select set_audit_param('hg_audit_logsize','60MB');
set_audit_param
---------------------------------
set configuration successfully.
(1 行记录)
--审计日志保留日期修改为90天
highgo=> select set_audit_param('hg_audit_keep_days','90');
set_audit_param
---------------------------------
set configuration successfully.
(1 行记录)
--开启审计日志归档
highgo=> select set_audit_param('hg_audit_file_archive_mode','on');
set_audit_param
---------------------------------
set configuration successfully.
(1 行记录)
--配置审计日志归档路径,hg_audit_file_archive_mode为on时生效,需设置绝对路径且路径必须存在。
highgo=>select set_audit_param('hg_audit_file_archive_dest','/highgo/audit_archive');
set_audit_param
---------------------------------
set configuration successfully.
(1 行记录)
--退出数据库
highgo=> \q
--重启数据库生效(重启前先确认数据库授权是否在有效期内)
[root@host ~]# check_lic --检查数据库授权(v4.5.7及以下版本)
[root@host ~]# hg_lic --检查数据库授权(v4.5.8及以上版本)
[root@host ~]# pg_ctl restart --重启数据库
安全版v4.3.4.x
1、查看审计策略配置
与安全版v4.5.x版本查看方式相同,使用审计管理员syssao通过"select show_audit_param();"来查看当前的审计策略配置
sql
[root@localhost ~]# psql highgo syssao --登录数据库syssao用户
highgo=> select show_audit_param(); --执行sql查看审计策略
show_audit_param
---------------------------------------
hg_audit_Log = all, +
hg_audit_LogCatalog = on, +
hg_audit_LogClient = off, +
hg_audit_LogLevel = log, +
hg_audit_LogParameter = off, +
hg_audit_LogRelation = off, +
hg_audit_LogStatementOnce = off, +
hg_audit_Role = , +
hg_audit_filename = %d_%H, +
hg_audit_truncate_on_rotation = off,:+
hg_audit_RotationAge = 1440 min, +
hg_audit_RotationSize = 10240 KB, +
每个参数的说明如下:
hg_audit_Log:审计范围,可以是 read,write,function,role,ddl, misc,all。默认是 all。
hg_audit_LogCatalog:是否审计系统表,默认是开。
hg_audit_LogClient:是否将日志信息发送给客户端,默认关。
hg_audit_LogLevel:审计日志的级别,可以是 debug5,debug4,debug3, debug2,debug1:info,notice,warning,log。
hg_audit_LogParameter:记录传入的参数,默认关。
hg_audit_LogRelation:是否为每一个表都创建单独的日志项。默认关。
hg_audit_LogStatementOnce:相同查询只记录一次,默认关。
hg_audit_Role:该参数的配置对于审计信息记录无影响,默认配置即可。
hg_audit_filename:审计日志的文件格式,默认%d_%H。
hg_audit_truncate_on_rotation:审计日志自动覆盖。默认关。
hg_audit_RotationAge:自动覆盖的时间间隔。默认 1440 分钟。
hg_audit_RotationSize:自动覆盖的最大文件大小,默认 10M。
2、修改审计策略配置
审计管理员syssao可以通过"select set_audit_param('参数','选项');"修改审计策略配置,修改后重启数据库生效
修改示例:
sql
--登录syssao用户
[root@localhost ~]# psql highgo syssao
--审计范围修改为ddl
highgo=> select set_audit_param('hg_audit_Log','ddl');
set_audit_param
---------------------------------
set configuration successfully.
(1 row)
--开启审计日志循环覆盖
highgo=> select set_audit_param('hg_audit_truncate_on_rotation','on');
set_audit_param
---------------------------------
set configuration successfully.
(1 row)
--审计日志覆盖间隔为一周,60*24*7=10080
highgo=> select set_audit_param('hg_audit_RotationAge','10080');
set_audit_param
---------------------------------
set configuration successfully.
(1 row)
--审计日志名称以星期缩写格式命名
highgo=> select set_audit_param('hg_audit_filename','%a');
set_audit_param
---------------------------------
set configuration successfully.
(1 row)
--退出数据库
highgo=> \q
--重启数据库生效(重启前先确认数据库授权是否在有效期内)
[root@host ~]# check_lic --检查数据库授权
[root@host ~]# pg_ctl restart --重启数据库
企业版v9.0.x
此版本有两种审计模式,分为通用模式与专用模式,通过参数audit.privimode 来实现,参数可选值为 1,2。默认为 1。1 代表通用模式,表示安全审计管理员有权限查看所有审计日志;2 代表专用模式,表示安全保密管理员有权对普通用户和安全审计管理员的行为进行审计,安全审计管理员有权对数据库安全员和数据库管理员的行为进行审计。
在三权开启的状态下,只有审计管理员syssao用户有修改和查询审计策略的权限
1、查看审计策略配置
使用审计管理员syssao通过"show 审计参数;"来查看当前的审计策略配置
查询示例:
sql
[root@localhost ~]# psql highgo syssao --登录syssao用户
highgo=> show audit.enable; --查看审计总开关状态
audit.enable
--------------
on
highgo=> show audit.privimode; --查看审计模式
audit.privimode
-----------------
1
highgo=> show audit.retentionpolicy; --查看审计保留策略,按时间或空间保存日志。
audit.retentionpolicy
-----------------------
time
highgo=> show audit.retentiondays; --审计默认保留天数(此参数生效前提是audit.retentionpolicy值为time)
audit.retentiondays
---------------------
30
每个参数的说明如下:
audit.enable:安全审计总开关 on:表示打开安全审计 off:表示关闭安全审计(默认)
audit.privimode:指定审计模式 1:表示通用模式(默认) 2:表示专用模式
audit.retentionpolicy:审计日志保留策略,按时间或空间保存日志。 time:按照时间方式保存日志(默认) space:按照空间方式保存日志
audit.retentiondays:审计日志保存天数默认 30 天,超 30 天覆盖。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.systemopers:系统审计开关 off:表示不对系统审计事件进行审计(默认); succ:表示只对成功的系统审计事件进行审计; fail:表示只对失败的系统审计事件进行审计; all:表示成功和失败皆审计。
audit.sqlitedbpath:配置 sqilte 数据库的路径 默认路径:$PGDATA/pgaudit/sqlite/sqlite.db
2、修改审计策略配置
审计管理员syssao可以通过"alter system set 参数 = 选项;"修改审计策略配置,所有审计参数均为重启服务生效;
修改示例:
sql
--登录syssao用户
[highgo@localhost ~]$ psql highgo syssao
--开启审计模式
highgo=# alter system set audit.enable = 'on';
ALTER SYSTEM
--修改审计模式为专用模式
highgo=> alter system set audit.privimode = 2;
ALTER SYSTEM
--修改审计日志保留策略未时间模式
highgo=> alter system set audit.retentionpolicy = 'time';
ALTER SYSTEM
--修改审计日志保留180天
highgo=> alter system set audit.retentiondays = 180;
ALTER SYSTEM
--修改系统审计事件对失败系统审计事件进行审计;
highgo=> alter system set audit.systemopers = fail;
ALTER SYSTEM
[highgo@localhost ~]$ pg_ctl restart --重启数据库