oracle审计功能的用法介绍


本篇内容主要讲解“oracle审计功能的用法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“oracle审计功能的用法介绍”吧!
1,开启审计:
show parameter audit
alter system set audit_trail = DB_EXTENDED; –详细审计 注意,如果audit_trail=db,不记录SQL_BIND和SQL_TEXT DB:将审计结果放在数据库表中,aud$,通常只记录连接的信息.
DB_EXTENDED:将审计结果放在数据库表中,记录具体执行语句
OS:将审计结果记录在操作系统文件中,文件位置由audit_file_dest参数指定,(windows系统中将直接在事件查看器的系统日志中记录)
XML:将审计结果记录在audit_file_dest指定位置下的XML文件中。

2,重启数据库实例
startup force

3,指定审计内容 1. 对表的审计:可以单独对表的create,alter进行审计,如果要对drop操作进行审计需要对表加audit table(该命令包含有create table,drop table,truncate table).2. 对视图的审计:可以单独对视图的create进行审计,如果要对drop操作进行审计需要对视图加audit view(该命令包含有create view,drop view).3. 对程序包的审计:可以对包(函数,存储过程等)的create进行审计,如果需要对drop操作进行审计需要加audit procedure(该命令对CREATE FUNCTION, CREATE LIBRARY , CREATE PACKAGE, CREATE PACKAGE BODY, CREATE PROCEDURE, DROP FUNCTION, DROP LIBRARY, DROP PACKAGE, DROP PROCEDURE进行审计)4. 对用户的审计:可以通过audit user(该命令包含 create user,alter user,drop user)进行审计,
例如要审计scott账户的所有操作
audit all by scott;
4,查看都有哪些内容被审计
select * from dba_priv_audit_opts –where owner_name=’SCOTT’;
select * from dba_stmt_audit_opts
select * fromdba_obj_audit_opts
1. 对表的审计:可以单独对表的create,alter进行审计,如果要对drop操作进行审计需要对表加audit table(该命令包含有create table,drop table,truncate table).2. 对视图的审计:可以单独对视图的create进行审计,如果要对drop操作进行审计需要对视图加audit view(该命令包含有create view,drop view).3. 对程序包的审计:可以对包(函数,存储过程等)的create进行审计,如果需要对drop操作进行审计需要加audit procedure(该命令对CREATE FUNCTION, CREATE LIBRARY , CREATE PACKAGE, CREATE PACKAGE BODY, CREATE PROCEDURE, DROP FUNCTION, DROP LIBRARY, DROP PACKAGE, DROP PROCEDURE进行审计)4. 对用户的审计:可以通过audit user(该命令包含 create user,alter user,drop user)进行审计,DBA_AUDIT_TRAIL 列出所有审计跟踪条目USER_AUDIT_TRAIL USER视图显示与当前用户有关的审计跟踪条目

5,查看审计信息
select * from dba_audit_trail where owner = ‘SCOTT’ order by timestamp;
视图说明:
1. SYS.AUD$
审计功能的底层视图,如果需要对数据进行删除,只需要对aud$视图进行删除既可,其他视图里的数据都是由aud$所得.
2. DBA_AUDIT_EXISTS
列出audit not exists和audit exists产生的审计跟踪,我们默认的都是audit exists.
3. DBA_AUDIT_TRAIL
可以在里面查处所有审计所跟踪的信息.
4. DBA_AUDIT_OBJECT
可以查询所有对象跟踪信息.(例如,对grant,revoke等不记录),信息完全包含于dba_audit_trail
5. DBA_AUDIT_SESSION
所得到的数据都是有关logon或者logoff的信息.
6.DBA_AUDIT_STATEMENT
列出grant ,revoke ,audit ,noaudit ,alter system语句的审计跟踪信息.
7. DBA_PRIV_AUDIT_OPTS
通过系统和由用户审计的当前系统特权
8. DBA_OBJ_AUDIT_OPTS
可以查询到所有用户所有对象的设计选项
9. ALL_DEF_AUDIT_OPTS
10. AUDIT_ACTIONS
可以查询出在aud$等视图中actions列的含义
11. SYSTEM_PRIVILEGE_MAP
可以查询出aud$等视图中priv$used列的含义(注意前面加’-‘)


6 ,取消审计
全部取消是
noaudit all;
如果取消单独的可以根据上面4条查看有上面权限直接noaudit 即可。
如:noaudit create session by user scott;

取消对SC表的一切审计可使用如下语句:

NOAUDIT ALL ON SC;
noaudit取消审计的操作对已经连接着的session无用,但新开的session将不再审计。
— 取消所有statement审计
NOAUDIT ALL;
— 取消所有权限审计
NOAUDIT ALL PRIVILEGES;
— 取消所有对象审计
NOAUDIT ALL ON DEFAULT;

7,关闭审计
SQL> alter system set audit_trail=none scope=spfile;
.audit_sys_operations:是否对sysdba用户做审计 ,关于sysdba用户审计的结果,linux存放在audit_file_dest参数指定位置的aud文件中,windows存放在事件查看器的系统日志中
问题1:
确认审计相关的表是否已经安装

SQLPLUS> connect / AS SYSDBA

SQLPLUS> select * from sys.aud$; — 没有记录返回

SQLPLUS> select * from dba_audit_trail; — 没有记录返回

如果做上述查询的时候发现表不存在,说明审计相关的表还没有安装,需要安装。

SQLPLUS> connect / as sysdba

SQLPLUS> @$ORACLE_HOME/rdbms/admin/cataudit.sql

问题2:

将审计相关的表移动到其他表空间:

由于AUD$表等审计相关的表存放在SYSTEM表空间,因此为了不影响系统的性能,保护SYSTEM表空间,最好把AUD$移动到其他的表空间上。可以使用下面的语句来进行移动:

sql>connect / as sysdba;

sql>alter table aud$ move tablespace ;

sql>alter index I_aud1 rebuild online tablespace ;

SQL> alter table audit$ move tablespace ;

SQL> alter index i_audit rebuild online tablespace ;

SQL> alter table audit_actions move tablespace ;

SQL> alter index i_audi免费云主机域名t_actions rebuild online tablespace ;

问题3:
audit的审计信息保留时间
(默认一直保留)

手动清理:
How to truncate or delete rows from audit trail table sys.aud$
1)Only appropriate privileged user can do delete operation on SYS.AUD$ table. The user must have either of the following privileges.
-SYS user.
-DELETE ANY TABLE system privilege. (If O7_DICTIONARY_ACCESSIBILITY=TRUE)
-A user to whom SYS has granted the object privilege DELETE on SYS.AUD$ table.

2)Before deleting any rows you may want to archive the table. You can achive this by creating a table from SYS.AUD$ and export that. Don’t export SYS.AUD$ directly.
SQL>CREATE TABLE AUDIT_RECORD TABLESPACE users as select * from SYS.AUD$;
Now export the table as,
SQL>host exp tables=AUDIT_RECORD file=audit_record.dmp

3)To delete all records from audit trail table SYS.AUD$ issue,
SQL>DELETE FROM SYS.AUD$;

To delete all records of particular audited table from the audit trail issue,
SQL>DELETE FROM sys.aud$ WHERE obj$name=’&table_nmae’;

But deleting in this way will not reduce size on the system tablespace or aud$ table. In order to reduce size follow section 4.

4)Truncate audit table to reduce size.
SQL>CONN / as sysdba
SQL>TRUNCATE TABLE SYS.AUD$
自动清理:
1.创建清理aud$表procedure:

create or replace procedure clear_aud
as
begin
delete aud$ where ntimestamp#

commit;

exception when others then

rollback;

end;

2.创建清理AUD$表JOB:

Variable job number ;

begin

dbms_job.submit(:job, ‘clear_aud;’ ,trunc( sysdate + 1 / 24 , ‘hh34’ ), ‘trunc(sysdate+1/24,”hh34”)’ );

commit ;

end ;

/


问题4:

查找AUD$表大小

select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,BYTES/1024/1024 MB from dba_segments where SEGMENT_TYPE=’TABLE’ and SEGMENT_NAME=’AUD$’;

到此,相信大家对“oracle审计功能的用法介绍”有了更深的了解,不妨来实际操作一番吧!这里是百云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

commit;
exception when others then
rollback;
end;

2.创建清理AUD$表JOB:

Variable job number ;
begin
dbms_job.submit(:job, ‘clear_aud;’ ,trunc( sysdate + 1 / 24 , ‘hh34’ ), ‘trunc(sysdate+1/24,”hh34”)’ );
commit ;
end ;
/
问题4:
查找AUD$表大小
select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,BYTES/1024/1024 MB from dba_segments where SEGMENT_TYPE=’TABLE’ and SEGMENT_NAME=’AUD$’; 到此,相信大家对“oracle审计功能的用法介绍”有了更深的了解,不妨来实际操作一番吧!这里是百云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: rman备份归档日志的方法

这篇文章主要介绍“rman备份归档日志的方法”,在日常操作中,相信很多人在rman备份归档日志的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”rman备份归档日志的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧! 数据…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 01/06 10:58
Next 01/06 10:59