2021-05-30 15:05:31
查询Oracle数据库审计功能需依次完成确定审计活动类型、配置审计、查询审计跟踪及解释审计记录四个步骤,具体操作如下:
确定要审核的活动类型Oracle数据库提供多种审计选项,可根据安全需求选择特定活动类型进行跟踪:
数据操作(DML):针对表、视图等数据库对象的增删改操作(如INSERT、UPDATE、DELETE)。
安全相关活动:用户登录、权限变更(如GRANT/REVOKE)、角色修改等。
会话与连接活动:用户连接/断开数据库、会话状态变更等。
数据库结构更改:DDL操作(如CREATE、ALTER、DROP表或索引)。
其他选项:如审计语句执行失败的情况(BY ACCESS/BY SESSION)。
配置审计规则使用AUDIT命令设置审计策略,语法如下:
AUDIT [activity_type] BY [user_list] [IN [clause]] [ON [database_object]];示例场景:
审计所有用户对employees表的DML操作:AUDIT INSERT, UPDATE, DELETE ON employees BY ALL;
仅审计用户SCOTT对salary列的更新操作:AUDIT UPDATE(salary) ON employees BY SCOTT;
审计用户登录失败事件:AUDIT CREATE SESSION WHENEVER NOT SUCCESSFUL;
查询审计跟踪记录通过查询系统审计表(如DBA_AUDIT_TRAIL)获取审计日志,常用SQL示例:
基础查询:查看所有审计记录SELECT * FROM DBA_AUDIT_TRAIL;
条件过滤:查询特定对象(如employees表)的24小时内操作SELECT * FROM DBA_AUDIT_TRAIL WHERE obj_name = 'EMPLOYEES' AND timestamp >= SYSDATE - 1;
高级筛选:结合用户名、操作类型等条件SELECT username, action_name, timestamp, obj_name FROM DBA_AUDIT_TRAIL WHERE username = 'HR' AND action_name IN ('INSERT', 'UPDATE') ORDER BY timestamp DESC;
注意:
普通用户需通过USER_AUDIT_TRAIL视图查询自身操作记录。
审计表可能因版本不同而存在差异(如DBA_AUDIT_OBJECT、DBA_FGA_AUDIT_TRAIL)。
解释审计记录字段审计日志包含关键安全信息,主要字段如下:
USERID:执行操作的数据库用户名。
TIMESTAMP:操作发生的时间(精确到秒)。
OS_USER:操作系统级用户标识(辅助追踪跨平台攻击)。
OBJ_NAME:被操作的数据库对象名称(如表名、视图名)。
ACTION_NAME:操作类型(如LOGON、SELECT、ALTER TABLE)。
STATEMENT_TEXT:触发审计的完整SQL语句(可能因权限限制部分隐藏)。
EXTENDED_TIMESTAMP:高精度时间戳(11g及以上版本支持)。
CLIENT_ADDR:客户端IP地址(用于定位非法访问来源)。
补充建议:
通过以上步骤,可系统化实现Oracle数据库审计功能的配置、查询与分析,有效满足合规性要求与安全监控需求。