SQL> select username,action_name,obj_name from dba_audit_trail;USERNAME ACTION_NAME OBJ_NAME
-------------------- -------------------- ------------------------------
SCOTT SESSION REC DUAL
SCOTT SESSION REC SQLPLUS_PRODUCT_PROFILE
SCOTT SESSION REC PRODUCT_PRIVS
SCOTT SESSION REC DEPT
SCOTT SESSION REC EMP
SCOTT SESSION REC T1
SCOTT SESSION REC T2
V485A SESSION REC DUAL
V485A SESSION REC SQLPLUS_PRODUCT_PROFILE
V485A SESSION REC PRODUCT_PRIVS
V485A SESSION REC EMPUSERNAME ACTION_NAME OBJ_NAME
-------------------- -------------------- ------------------------------
V485A SESSION REC DEPT
SCOTT SESSION REC DEPT
SYSTEM SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
V485A SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPTUSERNAME ACTION_NAME OBJ_NAME
-------------------- -------------------- ------------------------------
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SYSTEM SESSION REC DEPTUSERNAME ACTION_NAME OBJ_NAME
-------------------- -------------------- ------------------------------
TEST SESSION REC DEPT
SYSTEM SESSION REC DEPT
SYSTEM SESSION REC DEPT
TEST SESSION REC DEPT
SCOTT SESSION REC DEPT38 rows selected.
以前可能在学审计的时候做过一些实验吧,现在我查询dba_audit_trail的时候内容如上所示。
现在我想要取消对这些用户的这些审计,应该怎么操作呀?现在我连这些审计到底审计的是什么内容都不知道……
-------------------- -------------------- ------------------------------
SCOTT SESSION REC DUAL
SCOTT SESSION REC SQLPLUS_PRODUCT_PROFILE
SCOTT SESSION REC PRODUCT_PRIVS
SCOTT SESSION REC DEPT
SCOTT SESSION REC EMP
SCOTT SESSION REC T1
SCOTT SESSION REC T2
V485A SESSION REC DUAL
V485A SESSION REC SQLPLUS_PRODUCT_PROFILE
V485A SESSION REC PRODUCT_PRIVS
V485A SESSION REC EMPUSERNAME ACTION_NAME OBJ_NAME
-------------------- -------------------- ------------------------------
V485A SESSION REC DEPT
SCOTT SESSION REC DEPT
SYSTEM SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
V485A SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPTUSERNAME ACTION_NAME OBJ_NAME
-------------------- -------------------- ------------------------------
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SCOTT SESSION REC DEPT
SYSTEM SESSION REC DEPTUSERNAME ACTION_NAME OBJ_NAME
-------------------- -------------------- ------------------------------
TEST SESSION REC DEPT
SYSTEM SESSION REC DEPT
SYSTEM SESSION REC DEPT
TEST SESSION REC DEPT
SCOTT SESSION REC DEPT38 rows selected.
以前可能在学审计的时候做过一些实验吧,现在我查询dba_audit_trail的时候内容如上所示。
现在我想要取消对这些用户的这些审计,应该怎么操作呀?现在我连这些审计到底审计的是什么内容都不知道……
一 审计功能的参数控制
audit_trail 参数的值可以设置为以下几种1. NONE:不开启
2. DB:开启审计功能
3. OS:审计记录写入一个操作系统文件。
4. TRUE:与参数DB一样
5. FALSE:不开启审计功能。
这个参数是写道spfile里面的,需要重启数据库二 查看是否审计功能是否启动
SQL> show parameter audit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /u01/app/oracle/admin/ORCL/adump
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string NONE三 开启审计
SQL> conn /as sysdba
SQL> show parameter audit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /u01/app/oracle/admin/ORCL/adump
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string NONESQL> alter system set audit_sys_operations=TRUE scope=spfile; --审计管理用户(以sysdba/sysoper角色登陆)
SQL> alter system set audit_trail=db,extended scope=spfile;重启实例
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, EXTENDED
(完成)四 关闭审计
SQL> conn /as sysdba
SQL> show parameter audit
SQL> alter system set audit_trail=none;
重启实例五 检查各个节点的audit_trail 是否都是none
------------------------------------ ----------- ------------------------------
audit_file_dest string D:\ORACLE\ADMIN\ORCL\ADUMP
audit_sys_operations boolean FALSE
audit_trail string NONE
SQL>
audit_trail我已经改掉了哦……会不会是这样
上面从dba_audit_trail里查询出来的那些内容只是以前的记录,事实上我现在已经取消那些审计了。
审计是对选定的用户动作的监控和记录,通常用于:审查可疑的活动。例如:数据被非授权用户所删除,此时安全管理员可决定对该 数据库的所有连接进行审计,以及对数据库的所有表的成功地或不成功地删除进行审计。监视和收集关于指定数据库活动的数据。例如:DBA可收集哪些被修改、执行了多少次逻辑的I/O等统计数据。ORACLE支持三种审计类型: 语句审计,对某种类型的SQL语句审计,不指定结构或对象。
特权审计,对执行相应动作的系统特权的使用审计。
对象审计,对一特殊模式对象上的指定语句的审计。ORACLE所允许的审计选择限于下列方面:审计语句的成功执行、不成功执行,或者其两者。
对每一用户会话审计语句执行一次或者对语句每次执行审计一次。
对全部用户或指定用户的活动的审计。当数据库的审计是使能的,在语句执行阶段产生审计记录。审计记录包含有审计的操作、用户执行的操作、操作的日期和时间等信息。审计记录可存在数据字典表(称为审计记录)或操作系统审计记录中。数据库审计记录是在SYS模式的AUD$表中。
是的,你已经取消audit trail。不过是老的审计记录而已
Name Null? Type
----------------------------------------- -------- --------------------------- OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)SQL> select object_type from dba_objects where object_name='DBA_AUDIT_TRAIL';OBJECT_TYPE
-------------------
VIEW
SYNONYMSQL> select table_name from all_synonyms where synonym_name='DBA_AUDIT_TRAIL';TABLE_NAME
------------------------------
DBA_AUDIT_TRAILSQL>既然DBA_AUDIT_TRAIL的TPYE是VIEW,我现在想看看DBA_AUDIT_TRAIL的基表是什么,可是从v$fixed_view_definition中查不到相关记录。
是不是要从其他地方查?抑或是别的原因
SQL> set long 10000;
SQL> select dbms_metadata.get_ddl('VIEW', 'DBA_AUDIT_TRAIL', 'SYS') from dual;或者直接用
SQL> select REFERENCED_NAME from ALL_DEPENDENCIES where NAME='DBA_AUDIT_TRAIL';REFERENCED_NAME
--------------------------------------------------------------------------------
AUD$
SYSTEM_PRIVILEGE_MAP
STMT_AUDIT_OPTION_MAP
AUDIT_ACTIONS