金仓数据库KingbaseES数据库审计介绍
关键字:
KingbaseES、数据库审计、安全特性、人大金仓
什么是审计?
对数据库系统中发生的动作(或事件),将其对应的操作对象、操作时间等信息记录下来的过程,称为审计。
任何系统的安全保护措施都不是完美无缺的,蓄意盗窃,破坏数据的人总是想方设法打破控制,审计功能将用户对数据库的所有操作自动记录下来放入审计日志中,审计员(sao)可以通过对审计日志的分析,对潜在的威胁提前采取有效地措施加以防范。KingbaseES 数据库提供了一套完整的审计机制,用来保证对数据库中的各种行为进行监控,进而为数据库的安全、可靠和有效提供有力的保障。
服务器事件审计
只要打开审计开关以及服务器事件或者用户事件的开关,总是在审计中记录发生的服务器事件,不需要设置审计策略。
语句级别审计
与SQL 命令相关的审计,具体为ALL、SELECT、COPY、CREATE、DML、DROP、FUNCTION、GRANT 、INDEX、MATERIALIZED VIEW、PROCEDURE、SELECT、SEQUENCE、SYSTEM、TABLE、TRANSACTION 、VIEW。
注意: 数据库在审计过程中,需要先读取审计规则,之后使用审计规则判断,才能生成审计记录。如果在读取审计规则前,就出错,可能无法生成审计记录。
模式对象级别审计
模式对象级审计发生在具体的对象上的DML/SELECT 操作,需要指定模式名及其对象名。只有对相应对象执行正确的设置才会触发审计,比如:为函数对象设置一个INSERT 的审计策略将无法生效,因为数据库并不支持INSERT到一个函数。
添加审计规则
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:审计对象的名称,比如为表名、视图名、存储过程名。可以为空,表示审计指定模式下的所有此类对象。
取消审计规则
sysaudit.remove_audit (rule_id int)