需求:客户想对数据库开启sys用户的审计功能,关闭其它用户的审计功能。
1)再一次巡检报告中,我们发现数据库版本11.2.0.4,开启审计功能,提供的建议如下,关闭审计 alter system set audit_trail=none scope=spfile; 2)客户同意关闭其它用户的审计功能,想只开启对sys用户的审计功能
审计相关知识点
什么是数据库审计?保存什么内容?保存的内容以什么形式存在?审计是从数据库用户和非数据库用户监视和记录所选用户数据库操作。您可以基于单个操作(例如,执行的SQL语句的类型)或可以包括用户名,应用程序,时间等的数据组合进行审计。审计内容包括,使用者登陆的主机名称,服务名称,连接方式,会话信息,数据库用户名,地址信息,及数据库操作信息(未开启审计功能则不记录此项)保存的内容,可以存储再操作系统os trace文件存储、xml格式文件存储,也可以存储在数据库的基表中https://docs.oracle.com/cd/E11882_01/network.112/e36292/auditing.htm#BCGHGJJH为什么使用审计? 责任追溯,数据库出现人为错误,可以通过审计追踪定位机器+时间,方便追踪到个人 监控数据库中特定活动的数据
如何开启对sys用户的审计
在数据库开启审计功能,AUDIT_SYS_OPERATIONS –SYS用户审计开启,则在audit_file_dest参数下,强制审计的aud文件中,将记录SYS用户的所有SQL操作FALSE| TRUE 是否审计sys用户--关闭数据库审计功能后,开启对sys用户的审计功能SQL> alter system set audit_trail=none scope=spfile;SQL> alter system set audit_sys_operations=true scope=spfile;-- 举例说明,查询审计文件[oracle@t2 adump]$ pwd/u01/app/oracle/admin/t2/adumpvim t2_ora_29384_20181220193947356261143795.audThu Dec 20 21:37:25 2018 +08:00LENGTH : '444'ACTION :[289] 'SELECT NAME NAME_COL_PLUS_SHOW_PARAM,DECODE(TYPE,1,'boolean',2,'string',3,'integer',4,'file',5,'number', 6,'big integer', 'unknown') TYPE,DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM FROM V$PARAMETER WHERE UPPER(NAME) LIKE UPPER (:NMBIND_SHOW_OBJ) ORDER BY NAME_COL_PLUS_SHOW_PARAM,ROWNUM'DATABASE USER:[1] '/'PRIVILEGE :[6] 'SYSDBA'CLIENT USER:[6] 'oracle'CLIENT TERMINAL:[5] 'pts/3'STATUS:[1] '0'DBID:[10] '2595186796'--可以指定sys审计文件新的位置,不是默认数据库参数audit_file_dest目录下https://blog.csdn.net/haibusuanyun/article/details/11212567--SYS用户windows审计目录https://blog.csdn.net/t0nsha/article/details/7763964
管理sys审计文件
如果长期不管理sys监控后的trace文件,最终文件系统存储将被trace文件撑满,因此对数据库的管理需要从头到脚的考虑及安全保障 操作系统crontab定期清理审计文件[oracle@t2 tt]$ crontab -e16 * * * * find /u01/app/oracle/admin/t2/adump -name "*.aud" -mmin +30 -exec rm {} \删除30分钟前的aud文件,mtime 天,替换mmin分钟即可,自行选择删除策略 按照天删除 或者按照分钟进行删除策略,测试环境测试30分钟是满足的
误区纠正
1.关闭数据库审计,并不影响sys审计开启2.数据库审计,默认不审计sys用户(原因,sys用户具有随意修改删除审计基表AUD$的权限,审计有啥用,dba不开心删除就没了)3.数据库审计默认启用少量的审计策略,因此如果需要使用什么功能,都是需要了解清楚,并配置合适的审计策略,否则即使开启审计也可能没有你想要的东西