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命令

本文链接:AUDIT IN SESSION CURRENT无法NOAUDIT

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:Rexdf,谢谢!^^


此条目发表在Oralce分类目录,贴了标签。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。

*

:zsmilebig: :zsadbig: :zwiredbig: :zgreenhappy: more »

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据