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. shell中各种括号的作用详解()、(())、[]、[[]]、{}

    一.小括号,圆括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号, ...

  2. 火狐插件hostadmin

    windows的host文件:  c:\Windows\System32\drivers\etc\hosts 手动修改hosts文件费时又费力,可直接在FF附加组件中搜索hostadmin下载安装: ...

  3. jeecms之全文检索

    需要在后台生成检索,如下: . 这样,在首页进行搜索的时候才会显示如下: 注意,一定要先生成索引,才能进行全文检索.  

  4. proteus 8.8 直装版提示Symbol $MKRORIGIN used but not found in libraries 安装后没有库

    用管理员运行程序,然后再通过菜单打开仿真文件是没问题. 解决方法:通常的安装目录是C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Prof ...

  5. IO流8 --- 使用FileReader和FileWriter实现文本文件的复制 --- 技术搬运工(尚硅谷)

    @Test public void test4(){ FileReader fr = null; FileWriter fw = null; try { fr = new FileReader(&qu ...

  6. Thinkphp 调试方法

    1.入口文件index.php配置APP_DEBUG,能直接发现页面上的错误 define('APP_DEBUG',True); 2.配置页面调试SHOW_PAGE_TRACE,可以在config里面 ...

  7. Ajax--serialize应用表单数据序列化

    一.jQuery+Ajax表单数据序列化 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu ...

  8. vuehomework1

    红黄蓝三个按钮,点击不同的按钮可以切换一个200*200的矩形框对应的颜色 <!DOCTYPE html> <html lang="en"> <hea ...

  9. JDK的KEYTOOL的应用,以及签署文件的应用(原创)

    首先,我是这样的情况下学到这部分知识的: 我们公司同事把自己的unity生成的APK包查出MD5值直接拿出去微信那边申请,当然这样本来是没毛病,毕竟当时只有他一个人开发这个游戏, 然而我们几个前端过去 ...

  10. 更新与发展 | Alibaba Cloud Linux 2 特性与开发细节揭秘

    2019 年 4 月,Alibaba Cloud Linux 2 (Aliyun Linux 2) 正式开源.时至今日,已经走过三个月的里程.在这段时间内,这个刚诞生不久的为阿里云 ECS 环境定制优 ...