无需启动即可设置审计参数

时间:2017-04-20 06:16:29

标签: oracle startup audit

我想在我的oracle db中激活对一两个表的审计操作, 为此,我需要设置审计参数。

alter system set AUDIT_SYS_OPERATIONS=true scope=spfile;
alter system set AUDIT_TRAIL=db, extended scope=spfile;

但是那些参数并没有真正改变,因为需要启动DB。

有没有办法跳过启动以应用这些更改?

这在生产环境中非常重要,而且启动几乎是不可能的。

谢谢。

2 个答案:

答案 0 :(得分:1)

如果您只想对所选对象启用审核,则可以在不跳过数据库实例的情况下执行此操作。默认情况下,审计跟踪设置为DB

SQL> show parameter audit

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/orcl/adu
                                                 mp
audit_sys_operations                 boolean     FALSE
audit_syslog_level                   string
audit_trail                          string      DB

您需要做的就是对该对象启用必要的审核。

SQL> conn jay
Enter password: 
Connected.

SQL> audit select on my_table;

Audit succeeded.


SQL> conn system 
Enter password: 
Connected.
SQL> select * from jay.my_table;

no rows selected

可以从USER_AUDIT_OBJECT视图访问审核信息。

SQL> conn jay
Enter password: 
Connected.

SQL> select username, action_name from user_audit_object where obj_name='MY_TABLE';

USERNAME                       ACTION_NAME
------------------------------ ----------------------------
SYSTEM                         SESSION REC

但是,如果需要为sysdba / sysoper特权用户(如sys)启用审核,则需要将audit_sys_operations参数设置为true,这又需要数据库关闭。

此外,如果您使用的是Oracle 12c,则AUDIT_SYS_OPERATIONS默认设置为true

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> show parameter audit

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string  /u01/app/oracle/admin/orcl/adump
audit_sys_operations                 boolean     TRUE
audit_syslog_level                   string
audit_trail                          string      DB

答案 1 :(得分:0)

你无法在没有启动的情况下使用它

  

看这个(Auditing Administrative Users)