查看审计是否开启:
SQL> show parameter audit
NAME TYPE VALUE
------------------------------------ -------------------------------- ------------------------------
audit_file_dest string /u01/app/oracle/admin/crab/adu
mp
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string NONE
SQL> alter system set audit_sys_operations=true scope=spfile;
注:scope=both和scope=spfile
Oracle 里面有个叫做spfile的东西,就是动态参数文件,里面设置了Oracle 的各种参数。所谓的动态,就是说你可以在不关闭数据库的情况下,更改数据库参数,记录在spfile里面。更改参数的时候,有4种scope选项。scope就是范围 ++ scope=spfile 仅仅更改spfile里面的记载,不更改内存,也就是不立即生效,而是等下次数据库启动生效。有一些参数只允许用这种方法更改 ++ scope=memory 仅仅更改内存,不改spfile。也就是下次启动就失效了 ++ scope=both 内存和spfile都更改 ++ 不指定scope参数,等同于scope=both.
需要注意的是 ,如果修改静态参数,必须指定SPFILE参数(必须表明SCOPE=MEMOEY或者SCOPE=SPFILE),否则会报错。
修改的是静态参数必须重启数据库。
创建:
exec dbms_fga.add_policy('SCOTT','EMP','FGA1','deptno=10','sal',enable=>true);
查看是否创建成功:
sys@CRAB < select object_schema,object_name,policy_name,enabled from dba_audit_policies where policy_name='FGA1';
OBJECT_SCH OBJECT_NAME POLICY_NAME ENA
---------- ------------------------------ ------------------------------ ---
SCOTT EMP FGA1 YES
查看审计结果数量:
select count(*) from dba_fga_audit_trail;
删除审计结果:截断表
truncate table fga_log$;
禁用fga:
sys@CRAB < exec dbms_fga.
disable _policy('SCOTT','EMP','FGA1');
启用:
sys@CRAB < exec dbms_fga.
enable _policy('SCOTT','EMP','FGA1');
删除fga:
sys@CRAB < exec dbms_fga.
drop _policy('SCOTT','EMP','FGA1');
12c里 ,细粒度审计要做pdb里,一般不在cdb里。