Kingbase V8R6 审计策略配置

1.Kingbase审计介绍:

KingbaseES 的审计设置分为三种类型:服务器事件审计、语句审计、模式对象审计。

服务器事件审计:审计数据库服务器发生的事件,包含以下几种:数据库服务器的启动、数据库服务器的停 止、数据库服务器配置文件的重新加载、用户登录、用户登出。简称为:服务器级审计或服务器审计。默认 sysaudit.serverevent=true。

语句级别审计:也称为”STATEMENT AUDITING”,指在 DBMS 范围内,对 DBMS 拥有的结构或模式 对象进行操作时引发的事件进行审计,此类结构或模式对象并不指具体的某个结构或模式对象,而是 一类结构或模式对象的泛称。通常,包括 DBMS 提供的 DDL、DML、DQL、DCL、TCL 等语句引发的 事件。简称为:语句级审计或语句审计。自定义配置审计策略。

模式对象级别审计:也称为”SCHEMA OBJECT AUDITING”,指在某个确定的模式对象上进行 SELECT 或 DML 操作时引发的事件进行审计。模式对象包括表、视图、物化视图、过程、函数、序列。模式对 象不包括有依附关系的对象,如依附于表的索引、约束、触发器、分区表等。简称为:模式对象级审计 或对象审计。自定义配置审计策略。

审计功能有如下几个参数可以配置:

sysaudit.enable:设置审计功能是否开启的总开关,默认sysaudit.enable=off

sysaudit.serverevent:服务器事件审计开关,包括:服务器启动、关闭、重载配置,服务器启动时设置,默认sysaudit.serverevent=true

sysaudit.userevent:用户事件审计开关,包括:客户端登录和退出,默认sysaudit.userevent=true

在配置审计之前,需要对三权分立有一个了解。

2.审计策略配置

2.1 修改配置文件

修改 kingbase.conf 文件中 shared_preload_libraries 参数,然后重启数据库

shared_preload_libraries = 'sysaudit'

shared_preload_libraries = 'liboracle_parser, synonym, plsql, force_view, kdb_flashback,plugin_debugger, plsql_plugin_debugger, plsql_plprofiler, ora_commands,kdb_ora_expr, sepapower, dblink, sys_kwr, sys_ksh, sys_spacequota, sys_stat_statements, backtrace, kdb_utils_function, auto_bmr, sys_squeeze,passwordcheck,sysaudit,identity_pwdexp,sys_audlog,passwordhistory'

2.2 加载插件

[kingbase@kingbaser6 ~]$ ksql -U system -dtest

test=# create extension sysaudit;

test=# show sysaudit.enable;

test=# \c test sao

test=> alter system set sysaudit.enable=on;

test=> select sys_reload_conf();

 2.3 配置规则

2.3.1 服务器事件审计

只要打开审计开关以及服务器事件或者用户事件的开关,总是在审计中记录发生的服务器事件,不需要设置审计策略。

2.3.2 语句级别审计

创建语句级别审计:

sysaudit.set_audit_stmt(audit_type text, audit_users text, audit_schema text, audit_objs text )

参数说明:

audit_type:语句级审计策略,支持 DML、DDL、TCL 语句等,可以指定审计某一种SQL命令。

audit_users:审计的用户名,null 表示审计所有用户。

audit_schema:审计对象的模式名。可以为空,表示审计所有模式下的此类对象。

audit_objs:审计对象的名称,只有 select table、insert table、update table、delete table、 truncate table、drop table 这六种语句支持设置表名。

[kingbase@kingbaser6 ~]$ ksql -U system -d test

test=# \c test sao

test=> SELECT sysaudit.set_audit_stmt('CREATE TABLE', 'system', null, null); #审计 system 用户的表创建动作

test=> SELECT sysaudit.set_audit_stmt('select table', 'system', null, null); #审计 system 用户的表查询动作

test=> select * from sysaudit.all_audit_rules; #查询已配置的审计规则

test=> select sysaudit.remove_audit (16424); #取消编号为 16424的审计策略

查看审计日志:

[kingbase@kingbaser6 ~]$ ksql -U sao -d security

security=> select * from sysaudit_record_sao;

2.3.3 模式对象级别审计

sysaudit.set_audit_object(audit_type text, audit_users text, audit_schema text, audit_objs text)

参数说明:

audit_type:审计对象的类型,支持:TABLE、VIEW、MATERIALIZED VIEW、PROCEDURE、FUNCTION,大小写不敏感。

audit_users:审计的用户名,null 表示审计所有用户。

audit_schema:审计对象的模式名。可以为空,表示审计所有模式下的此类对象。

audit_objs:审计对象的名称,比如为表名、视图名、存储过程名。可以为空,表示审计指定模式下的所有此类对象。

[kingbase@kingbaser6 ~]$ ksql -U system -d test

test=# \c test sao

test=> select sysaudit.set_audit_object('table', 'system', 'public', null); #审计system用户对public模式下所有表的所有操作

2.3.4 审计入侵检测

当启动参数 sysaudit.ids 设置为 on 时(默认sysaudit.ids=off),实时侵害检测系统会实时分析用户的操作,将其与系统中创建的实时侵害检测规则进行匹配,判断该用户操作是否是侵害行为。当检测到侵害行为次数达到阀值时,服务器将自动断开连接。

sysaudit.create_ids_rule(rulename text, actionname text, username text, schname text, objname text, when_ever text, IP text, start_end_time text, interval_time int, times int)

参数说明:

rulename:创建的审计入侵检测规则名,具有唯一性,大小写敏感,不可指定为 null。

actionname:审计类型名,取值详见审计策略与 SQL 命令对应表,不可指定为 null。

username:审计用户名,未设置时需要指定为 null。

schname:审计模式名,未设置时需要指定为 null。

objname:审计对象名,未设置时需要指定为 null。

when_ever:审计时机,取值 ALL/SUCCESSFUL/FAILED ,指定为 null 时默认取值 FAILED。

IP:审计的IP列表,以’,’隔开。例如’”192.168.0.1”,”127.0.0.1”。指定为 null 时为检测所有IP地址。

start_end_time:审计的时间串,指定为 null 时为检测所有时间,格式如下: start_end_time ::= 具体时间段项 {, 具体时间段项} 具体时间段项::= 开始时间 TO 结束时间。

interval_time:时间间隔,单位为分钟,不可指定为 null。

times:检测次数阀值,不可指定为 null。

[kingbase@kingbaser6 ~]$ ksql -U system -d test

test=# \c test sao

test=> alter system set sysaudit.ids=on;

test=> select sys_reload_conf();

test=> select sysaudit.create_ids_rule('rule1', 'drop table', null, null, null,'ALL', null, null, 1, 5); #审计数据库内dorp行为,每分钟执行1次检测,当检测到侵害行为次数达到5次时,服务器将自动断开连接。

test=> select sysaudit.show_ids_rules();

test=> SELECT sysaudit.drop_ids_rule('rule1'); #删除审计入侵检测

 2.3.5 审计记录查询

审计信息存储在数据库 SECURITY 中,审计管理员 sao 可通过视图 sysaudit_record_sao 查看,安全管理员 sso 可通过视图 sysaudit_record_sso 查看。

[kingbase@kingbaser6 ~]$ ksql -U sao -d security

security=> select * from  sysaudit_record_sao limit 1;

  • 13
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值