审计概述
对数据库系统中发生的动作(或事件),将其对应的操作对象、操作时间等信息记录下来的过程,称为审计。 任何系统的安全保护措施都不是完美无缺的,蓄意盗窃,破坏数据的人总是想方设法打破控制,审计功能将 用户对数据库的所有操作自动记录下来放入审计日志中,审计员(sao
)可以通过对审计日志的分析,对潜在 的威胁提前采取有效地措施加以防范。KingbaseES
数据库提供了一套完整的审计机制,用来保证对数据库中的各种行为进行监控,进而为数据库的安全、可靠和有效提供有力的保障
加载插件
修改
kingbase.conf
文件中
shared_preload_libraries
参数。
shared_preload_libraries
=
'sysaudit'
create extension sysaudit;
审计开关
KingbaseES
数据库中对审计功能设置了开关。审计功能关闭时,数据库不会发生审计动作,也无法将审计设
置应用到数据库中。审计员(
sao
)如果要使
KingbaseES
系统中的审计设置生效,必须打开该审计开关。
sysaudit.enable
设置审计功能是否开启的总开关,有
on
和
off
两种选择,缺省为
off
。
on
表示打开审计功能;
off
表示关闭审计功能;
打开(或关闭)审计开关的方式有如下方式:
•
在
KingbaseES
启动之前,通过修改
kingbase.conf
文件,将
sysaudit.enable
设置为
on
(或
off
)
在
KingbaseES
启动后,以审计员用户连接数据库,利用
ALTER SYSTEM
命令将
sysaudit.enable
设置为
on | off
。打开(或关闭)审计开关,重载配置后,数据库系统中的审
计功能立即生效(或失效)。
打开(或关闭)审计开关并重载的命令:
ALTER SYSTEM SET sysaudit
.
enable
=
on
|
off;
CALL sys_reload_conf();
审计设置
KingbaseES
的审计设置分为三种类型:服务器事件审计、语句审计、模式对象审计。
•
事件审计:审计数据库服务器发生的事件,包含以下几种:数据库服务器的启动、数据库服务器的停
止、数据库服务器配置文件的重新加载、用户登录、用户登出。简称为:服务器级审计或服务器审计。
•
语句级别审计:也称为
”STATEMENT AUDITING”
,指在
DBMS
范围内,对
DBMS
拥有的结构或模式
对象进行操作时引发的事件进行审计,此类结构或模式对象并不指具体的某个结构或模式对象,而是
一类结构或模式对象的泛称。通常,包括
DBMS
提供的
DDL
、
DML
、
DQL
、
DCL
、
TCL
等语句引发的
事件。简称为:语句级审计或语句审计。
•
模式对象级别审计:也称为
”SCHEMA OBJECT AUDITING”
,指在某个确定的模式对象上进行
SELECT
或
DML
操作时引发的事件进行审计。模式对象包括表、视图、物化视图、过程、函数、序列。模式对
象不包括有依附关系的对象,如依附于表的索引、约束、触发器、分区表等。简称为:模式对象级审计
或对象审计。
KingbaseES
的审计参数设置如下:
sysaudit.serverevent
服务器事件审计开关,包括:服务器启动、关闭、重载配置,服务器启动时设
置,默认
true
。
sysaudit.userevent
用户事件审计开关,包括:客户端登录和退出,默认
true
。
sysaudit.enable
设置审计功能是否开启的总开关,有
on
和
off
两种选择,缺省为
off
。
sysaudit.syntaxerror
语言错误审计开关,设置是否审计发生语法错误的语句,默认
off
。此类错误也
包括:事务块中发生错误之后,未经语法分析二直接报错的语句。
sysaudit.audit_table_hostaddr
存储审计日志的数据库的
IP
地址,默认是本机
sysaudit.audit_table_port
存储审计日志的数据库的端口。
sysaudit.audit_table_user
存储审计日志的数据库的用户,默认为审计管理员
sao
。
sysaudit.audit_table_password
存储审计日志的数据库的用户密码。
sysaudit.local_sao_password
数据库的审计管理员
sao
用户密码。
服务器事件审计
只要打开审计开关以及服务器事件或者用户事件的开关,总是在审计中记录发生的服务器事件,不需要设置
审计策略