在我们日常的工作中,一些安全性的要求高的数据库需要增加审计操作,哪个用户什么时间做了什么操作。
1.打开数据库的审计
alter system set audit_sys_operations=TRUE scope=spfile; //审计管理用户
alter system set audit_trail=db,extended scope=spfile; //将sql语句写入审计表中
2.对数据库重启并查看
重启数据库
shutdown immediate;
startup;
show parameter audit;
3.增加审计策略
我们需要对数据库的caiwu用户的所有操作进行审计
// 审计用户caiwu所有成功的操作
audit all by caiwu by access whenever successful;
或者
//针对用户的审计(未执行成功的也审计)
audit select table by caiwu by access; //查表审计
audit update table by caiwu by access; //更新审计
audit delete table by caiwu by access; //删除审计
audit insert table by caiwu by access; //插入审计
//针对某表的更新、删除审计(错误也审计)
AUDIT UPDATE,DELETE,INSERT ON T_TEST by access;
//保护审计
audit all on sys.aud$ by access;
4.取消审计
NOAUDIT UPDATE,DELETE,INSERT ON T_TEST by access;
5.查询审计结果
select OS_USERNAME,username,USERHOST,TERMINAL,TIMESTAMP,OWNER,obj_name,ACTION_NAME,sessionid,os_process,sql_text from dba_audit_trail;
6.将审计表查询开放给某个用户grant select on dba_audit_trail to caiwu;
7.清空审计记录DELETE FROM SYS.AUD$;