AUDIT IN SESSION CURRENT无法NOAUDIT

前两天看文档提到AUDIT IN SESSION CURRENT方式,无法通过NOAUDIT命令取消审计,只有用户退出连接审计设置才自动结束。

 

 

先来看正常的审计特点:

SQL> conn yangtk/yangtk
已连接。
SQL> create table t_1 (id number);

表已创建。

SQL> select owner, obj_name, action_name
  2  from user_audit_trail
  3  where action_name = 'CREATE TABLE'
  4  and timestamp > trunc(sysdate);

未选定行

SQL> audit create table;

审计已成功。

SQL> create table t_2 (id number);

表已创建。

SQL> select owner, obj_name, action_name
  2  from user_audit_trail
  3  where action_name = 'CREATE TABLE'
  4  and timestamp > trunc(sysdate);

未选定行

SQL> conn yangtk/yangtk
已连接。
SQL> create table t_3 (id number);

表已创建。

SQL> select owner, obj_name, action_name
  2  from user_audit_trail
  3  where action_name = 'CREATE TABLE'
  4  and timestamp > trunc(sysdate);

OWNER      OBJ_NAME   ACTION_NAME
---------- ---------- ----------------------------
YANGTK     T_3        CREATE TABLE

SQL> noaudit create table; 

审计未成功。

SQL> create table t_4 (id number);

表已创建。

SQL> select owner, obj_name, action_name
  2  from user_audit_trail
  3  where action_name = 'CREATE TABLE'
  4  and timestamp > trunc(sysdate);

OWNER      OBJ_NAME   ACTION_NAME
---------- ---------- ----------------------------
YANGTK     T_3        CREATE TABLE
YANGTK     T_4        CREATE TABLE

SQL> conn yangtk/yangtk
已连接。
SQL> create table t_5 (id number);

表已创建。

SQL> select owner, obj_name, action_name
  2  from user_audit_trail
  3  where action_name = 'CREATE TABLE'
  4  and timestamp > trunc(sysdate);

OWNER      OBJ_NAME   ACTION_NAME
---------- ---------- ----------------------------
YANGTK     T_3        CREATE TABLE
YANGTK     T_4        CREATE TABLE

这说明审计的设置和取消都只对命令发出后的会话有效,而已经在运行的会话是不受这个命令影响的。

新特性IN SESSION CURRENT方式改变了这一点,使得审计对且仅对当前会话生效:

SQL> audit create table in session current;

审计已成功。

SQL> create table t_6 (id number);

表已创建。

SQL> select owner, obj_name, action_name
  2  from user_audit_trail
  3  where action_name = 'CREATE TABLE'
  4  and timestamp > trunc(sysdate);

OWNER      OBJ_NAME   ACTION_NAME
---------- ---------- ----------------------------
YANGTK     T_3        CREATE TABLE
YANGTK     T_4        CREATE TABLE
YANGTK     T_6        CREATE TABLE

由于Oracle没有提供NOAUDIT IN SESSION CURRENT语法,而直接NOAUDIT又对当前会话不生效,显然是没有办法取消IN SESSION CURRENT的审计设置的。

SQL> noaudit create table in session current;
noaudit create table in session current
                     *
1 行出现错误:
ORA-46342:
不能对 IN SESSION 子句执行 NOAUDIT 命令

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-678591/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/4227/viewspace-678591/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值