1. 对于权限审计和大部分语句,by session无效,无论指定by session/by access还是不指定,审计都自动为by access。
  2. 审计的语句级可以指定ALL,但是ALL只包括大部分语句,它不包括下面这些语句。

ALTER SEQUENCE, ALTER TABLE, COMMENT TABLE, DELETE TABLE, EXECUTE PROCEDURE, GRANT DIRECTORY, GRANT PROCEDURE, GRANT SEQUENCE, GRANT TABLE, GRANT TYPE, INSERT TABLE, LOCK TABLE, SELECT SEQUENCE, SELECT TABLE, UPDATE TABLE

  1. 对于语句和权限审计,生效从执行语句后下一个登陆用户开始,当前的所有session不受影响。而对象的审计,则从审计语句开始后对当前所有的用户生效。
  2. 可以使用NOAUDIT ALL、NOAUDIT ALL PRIVILEGE取消所有的语句、权限的审计,但是如果在审计的时候指定了用户,则NOAUDIT ALL或NOAUDIT ALL PRIVILEGE的时候,不会取消这些明确用户的审计,必须在NOAUDIT的时候也明确的指出相应的用户。

例1.只有少数语句审计可以设置BY SESSION,其他的语句审计和所有权限审计都只能设置为BY ACCESS。

SQL> audit create table;

审计已成功。

SQL> audit create any table by session;

审计已成功。

SQL> audit create view by access;

审计已成功。

SQL> select user_name, privilege, success, failure from dba_priv_audit_opts;

USER_NAME            PRIVILEGE                    SUCCESS    FAILURE

-------------------- ---------------------------- ---------- --------

CREATE TABLE                 BY ACCESS  BY ACCESS

CREATE ANY TABLE             BY ACCESS  BY ACCESS

CREATE VIEW                  BY ACCESS  BY ACCESS

SQL> NOAUDIT ALL PRIVILEGE;

审计未成功。

SQL> AUDIT TABLE;

审计已成功。

SQL> AUDIT VIEW BY SESSION;

审计已成功。

SQL> AUDIT TRIGGER BY ACCESS;

审计已成功。

SQL> SELECT USER_NAME, AUDIT_OPTION, SUCCESS, FAILURE FROM DBA_STMT_AUDIT_OPTS;

USER_NAME               AUDIT_OPTION            SUCCESS    FAILURE

----------------------- ----------------------- ---------- ----------

TRIGGER                 BY ACCESS  BY ACCESS

TABLE                   BY ACCESS  BY ACCESS

VIEW                    BY ACCESS  BY ACCESS

SQL> AUDIT LOCK TABLE BY SESSION;

审计已成功。

SQL> SELECT USER_NAME, AUDIT_OPTION, SUCCESS, FAILURE FROM DBA_STMT_AUDIT_OPTS;

USER_NAME               AUDIT_OPTION            SUCCESS    FAILURE

----------------------- ----------------------- ---------- ----------

TRIGGER                 BY ACCESS  BY ACCESS

TABLE                   BY ACCESS  BY ACCESS

VIEW                    BY ACCESS  BY ACCESS

LOCK TABLE              BY SESSION BY SESSION

通过测试,我们发现对于大部分的语句和权限,只能设置为BY ACCESS。

例2.接着上面的例子

我们取消对所有语句的审计,但是发现对于LOCK TABLE无效

SQL> NOAUDIT ALL;

审计未成功。

SQL> SELECT USER_NAME, AUDIT_OPTION, SUCCESS, FAILURE FROM DBA_STMT_AUDIT_OPTS;

USER_NAME              AUDIT_OPTION           SUCCESS    FAILURE

---------------------- ---------------------- ---------- -------

LOCK TABLE             BY SESSION BY SESSION

SQL> NOAUDIT LOCK TABLE;

审计未成功。

SQL> SELECT USER_NAME, AUDIT_OPTION, SUCCESS, FAILURE FROM DBA_STMT_AUDIT_OPTS;

未选定行

例3.

SQL> SELECT USER_NAME, AUDIT_OPTION, SUCCESS, FAILURE FROM DBA_STMT_AUDIT_OPTS;

未选定行

SQL> SELECT USERID, ACTION#, OBJ$NAME, PRIV$USED FROM SYS.AUD$;

未选定行

SQL> AUDIT TABLE;

审计已成功。

SQL> AUDIT CREATE ANY TABLE;

审计已成功。

SQL> AUDIT SELECT ON TEST;

审计已成功。

SQL> CREATE TABLE TEST_AUDIT (ID NUMBER);

表已创建。

SQL> CREATE TABLE TEST.TEST_AUDIT (ID NUMBER);

表已创建。

SQL> SELECT COUNT(*) FROM TEST;

COUNT(*)

----------

18651

SQL> SELECT USERID, ACTION#, OBJ$NAME, PRIV$USED FROM SYS.AUD$;

USERID                     ACTION# OBJ$NAME                 PRIV$USED

----------------------- ---------- ----------------------- ----------

YANGTK                         103 TEST

SQL> DROP TABLE TEST_AUDIT;

表已丢弃。

SQL> DROP TABLE TEST.TEST_AUDIT;

表已丢弃。

SQL> SELECT USERID, ACTION#, OBJ$NAME, PRIV$USED FROM SYS.AUD$;

USERID                     ACTION# OBJ$NAME                 PRIV$USED

----------------------- ---------- ----------------------- ----------

YANGTK                         103 TEST

我们发现只有对象审计生效了,要使语句级审计和权限级审计生效,必须重新登陆。

SQL> CONN YANGTK/YANGTK@TEST

已连接。

SQL> CREATE TABLE TEST_AUDIT (ID NUMBER);

表已创建。

SQL> CREATE TABLE TEST.TEST_AUDIT (ID NUMBER);

表已创建。

SQL> SELECT COUNT(*) FROM TEST;

COUNT(*)

----------

18651

SQL> SELECT USERID, ACTION#, OBJ$NAME, PRIV$USED FROM SYS.AUD$;

USERID                     ACTION# OBJ$NAME                 PRIV$USED

----------------------- ---------- ----------------------- ----------

YANGTK                           1 TEST_AUDIT                      41

YANGTK                         103 TEST

YANGTK                         103 TEST

YANGTK                           1 TEST_AUDIT                      40

例4.

SQL> NOAUDIT ALL;

审计未成功。

SQL> NOAUDIT ALL PRIVILEGE;

审计未成功。

SQL> NOAUDIT SELECT ON TEST;

审计未成功。

SQL> AUDIT TABLE;

审计已成功。

SQL> AUDIT VIEW BY YANGTK;

审计已成功。

SQL> AUDIT TABLE BY TEST;

审计已成功。

SQL> SELECT USER_NAME, AUDIT_OPTION, SUCCESS, FAILURE FROM DBA_STMT_AUDIT_OPTS;

USER_NAME               AUDIT_OPTION            SUCCESS    FAILURE

----------------------- ----------------------- ---------- -------

TABLE                   BY ACCESS  BY ACCESS

TEST                    TABLE                   BY ACCESS  BY ACCESS

YANGTK                  VIEW                    BY ACCESS  BY ACCESS

SQL> NOAUDIT ALL;

审计未成功。

SQL> SELECT USER_NAME, AUDIT_OPTION, SUCCESS, FAILURE FROM DBA_STMT_AUDIT_OPTS;

USER_NAME               AUDIT_OPTION           SUCCESS    FAILURE

----------------------- ---------------------- ---------- --------

TEST                    TABLE                   BY ACCESS  BY ACCESS

YANGTK                  VIEW                    BY ACCESS  BY ACCESS

SQL> NOAUDIT TABLE BY TEST;

审计未成功。

SQL> NOAUDIT VIEW BY YANGTK;

审计未成功。

SQL> SELECT USER_NAME, AUDIT_OPTION, SUCCESS, FAILURE FROM DBA_STMT_AUDIT_OPTS;

未选定行

审计从审计表中不成功的删除

Audit delete on sys.aud$ whenever not successful;

利用下列sql语句来审计从所有表中不成功的删除

Audit not exists;

利用下列语句来审计有system用户所执行的过程上的所有授权和取消授权语句

Audit grant procedure by system;

oracle一些常见的问题的更多相关文章

  1. ORACLE中常见的几种锁

    ORACLE中常见的几种锁: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁,sub share 3:Row-X 行独占(RX):用于行的修改,sub exclusive 4 ...

  2. Oracle数据库常见版本

    Oracle数据库常见版本 在Oracle数据库的发展中,数据库一直处于不断升级状态,有以下几个版本: Oracle 8,Oracle 8i:Oracle 8i表示Oracle正式向Internet上 ...

  3. Oracle 字符集常见字符集及解决方案

    Oracle 字符集常见字符集及解决方案 优先级别:alter session>环境变量>注册表>参数文件 一.查看字符集: 1.查询服务端字符集: select userenv(' ...

  4. Oracle之常见问题诊断方法

    Oracle认证:常见问题诊断方法如下: 1.TNS-12154 Error 或ORA-12154 特征:SQL*NET没有找到连接串或别名 原因1:(1)没有找到TNSNAMES.ORA文件,该文件 ...

  5. Oracle中常见的33个等待事件小结

    在Oracle 10g中的等待事件有872个,11g中等待事件1116个. 我们可以通过v$event_name 视图来查看等待事件的相关信息     一. 等待事件的相关知识 1.1 等待事件主要可 ...

  6. Oracle中常见的Hint(一)

    Oracle中的Hint可以用来调整SQL的执行计划,提高SQL执行效率.下面分类介绍Oracle数据库中常见的Hint.这里描述的是Oracle11gR2中的常见Hint,Oracle数据库中各个版 ...

  7. Oracle数据库常见sql

    -新建表:create table table_name( id varchar2(300) primary key, name varchar2(200) not null); --插入数据 ins ...

  8. 【Oracle】常见等待事件处理

    1.查看数据库中需要关注的等待事件: select sw.seq#,sw.sid||','||s.serial# sids,s.username,sw.event,sw.P1,sw.p2,sw.p3, ...

  9. Oracle数据库常见的误操作恢复方法(上)

    实验环境:Linux6.4 + Oracle 11g 面向读者:Oracle开发维护人员 概要: 1.误操作drop了emp表 2.误操作delete了emp表 3.误操作delete了emp表的部分 ...

  10. Oracle的常见错误及解决办法

    ORA-12528: TNS:listener: all appropriate instances are blocking new connections ORA-12528问题是因为监听中的服务 ...

随机推荐

  1. 用windows命令解压chm文件

    Windows里有这样一个工具:hh.exe.hh.exe最重要的功能就是用来关联CHM文件,当你运行一个chm文件的时候,系统就是用这个工具来打开的. 其实它还有另外一个功能——解压CHM文件在CM ...

  2. Leetcode463.Island Perimeter岛屿的周长

    给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域. 网格中的格子水平和垂直方向相连(对角线方向不相连).整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地 ...

  3. ubuntn16.04指令

    基础知识: ubuntn中的/表示根目录,包括bin,mnt等文件夹 /home表示家目录,/home/user表示用户下的家目录,/root表示root目录 常用指令: 进入root : sudo ...

  4. 理解es6箭头函数

    箭头函数知识点很少,但是要理解清楚,不然看代码会很不适应的. 1. 最简单的写法 x => x*x 可以理解为 我的x要被转化为x*x,所以实际相当于下边的这个 function (x){ re ...

  5. CSS利用filter/opacity实现背景透明

    先看看众所周知的解决方案 如果我们想要一个半透明背景,有两种实现方式: 1.利用CSS和opacity属性 .opacity { filter:alpha(opacity=);/*IE浏览器*/ op ...

  6. spring boot自动配置之jdbc(转)

    1.DataSource配置 1.1 默认配置application.xml spring.datasource.url=jdbc:mysql://localhost/test spring.data ...

  7. 2019.9.27 csp-s模拟测试53 反思总结

    这个起名方式居然还有后续?! 为什么起名不是连续的?! T1想了半天,搞出来了,结果数组开小[其实是没注意范围].T2概率期望直接跳,后来翻回来写发现自己整个理解错了期望的含义[何].T3错误想到赛道 ...

  8. Codevs2490 导弹防御塔

    2490 导弹防御塔 2490 导弹防御塔 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 大师 Master         题目描述 Description Freda的城堡—— ...

  9. golang学习资料必备

    核心资料库 https://github.com/yangwenmai/learning-golang

  10. linux常用目录介绍

    bin:全称binary,含义是二进制,该目录中存放的都是一些二进制文件,这些文件都是可以被运行的. dev:该目录主要存放的是外接设备,例如:光盘等.注意:在其中的设备是不能被直接使用的,需要挂载( ...