我想在我的oracle db中激活对一两个表的审计操作, 为此,我需要设置审计参数。
alter system set AUDIT_SYS_OPERATIONS=true scope=spfile;
alter system set AUDIT_TRAIL=db, extended scope=spfile;
但是那些参数并没有真正改变,因为需要启动DB。
有没有办法跳过启动以应用这些更改?
这在生产环境中非常重要,而且启动几乎是不可能的。
谢谢。
答案 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)
你无法在没有启动的情况下使用它