Oracle审计
1.什么是审计
审计是用来监控和记录用户的数据库操作的
2.未开启审计
即使未开启审计,Oracle数据库也会将以下三种操作记录在OS的$ORACLE_BASE/admin/$ORACLE_SID/adump/
- 以sysdba或者sysoper等管理员用户连接数据库实例(不管实例是否打开)
- 关闭数据库操作
- 打开数据库操作
3.标准审计
3.1.数据库参数
- 
audit_file_dest OS中审计信息存放位置 
- 
audit_sys_operations 默认值为FALSE,即不审计,修改后需要重启数据库 审计sys(或者以sysdba,sysoper身份登录)用户的所有操作(查询表,更新表等等) 审计信息放在OS中 
- 
audit_trail none:关闭标准审计,11G之前的默认值 db:将审计信息记录在数据库中(sys.aud$),只包含连接信息(LOGON,LOGOFF),但不包含以sysdba或者sysoper连接的信息(记录在OS中) db,extended:将审计信息记录在数据库中,同时包含执行的SQL以及绑定变量 os:将审计信息记录在OS中 xml:以XML的形式将审计信息记录在OS中 xml,extended:以XML的形式将审计信息记录在OS中,同时记录执行的SQL以及绑定变量 
3.2.审计级别
3.1节中,audit_trail为db,extended或者xml,extended时,可以记录额外的SQL信息,前提是开启了语句,权限或者对象审计
- 
语句级别 对某种类型的SQL语句进行审计但并不包含具体的对象 
- 
权限级别 任何使用了这个权限的都会被审计 
- 
对象级别 对数据库对象进行审计 
3.3.审计用SQL
/*语句级别*/
-- 审计所有对表的操作,例如修改,创建,删除表
audit table;
-- 取消审计
noaudit table;
/*权限级别*/
-- 审计所有使用此权限的操作
audit select any table;
-- 取消审计
noaudit select any table;
/*对象级别*/
-- 审计某个表增删改查的操作
aduit select,update,insert,delete on monkey.test;
-- 取消审计
noaudit select,update,insert,delete on monkey.test;
/*通用部分*/
by access  --每一个被审计的操作都会生成一条audit trail
by session --一个会话里面同类型的操作只会生成一条audit trail,默认为by session
whenever successful --操作成功才审计
whenever not successful --操作失败才审计
3.4.标准审计相关视图
- 
DBA_OBJ_AUDIT_OPTS 对象级别标准审计的策略 
- 
DBA_STMT_AUDIT_OPTS 语句级别标准审计的策略 
- 
DBA_PRIV_AUDIT_OPTS 权限级别标准审计策略 
- 
DBA_AUDIT_OBJECT 对象级别标准审计记录 
- 
DBA_AUDIT_STATEMENT 语句级别标准审计记录 
- 
DBA_AUDIT_SESSION 登录登出标准审计记录(普通用户,以SYSDBA或者SYSOPER的用户不记录) 
- 
DBA_AUDIT_TRAIL 所有的标准审计记录 
4.精细审计
FGA(fine grained auditing),可以指定更加精细的审计策略
参考:FGA审计
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号