当前位置: 代码网 > it编程>数据库>Oracle > Oracle数据库审计功能详解(简单易懂!)

Oracle数据库审计功能详解(简单易懂!)

2024年05月18日 Oracle 我要评论
一、查看是否开启审计show parameter audit;对于参数audit_sys_operations设置为true那么sys用户的操作也会被审计,但此值默认为false,此参数控制以sysd

一、查看是否开启审计

show parameter audit;

对于参数audit_sys_operations

设置为true那么sys用户的操作也会被审计,但此值默认为false,此参数控制以sysdba和sysoper权限登陆的用户以及sys用户本身的登陆,审计记录一定会写在操作系统文件中(无论audit_trail参数如何设置)。

对于参数audit_trail

  • none --不开启
  • os --启用数据库审计,并将数据库审计记录定向到操作系统文件,存储目录为audit_file_dest
  • db --开启审计功能 启用数据库审计,并将数据库所有审计记录定向到数据库的sys.aud$表
  • db, extended --extened之前的空格必须有,启用数据库审计,并将数据库所有审计记录定向到数据库的sys.aud$表,另外填充sys.aud$表的sqlbind列和sqltext列

二、开启审计

1.用sysdba登录

2.修改第一步的参数值

sql> alter system set audit_sys_operations=true scope=spfile;

系统已更改。

  audit_trail默认为db,不做修改

3.重启数据库,即可看见更改 

sql> shutdown immediate;

sql> startup mount;

sql> alter database open;

二、关闭审计 

alter system set audit_trail=none;

三、审计策略

1.例如:我现在要监视用户 ' wjy ' 所有行为。

这个命令将监视用户‘wjy’的所有行为,并记录到审计日志中。

其中,all表示监视所有操作,by wjy表示监视用户‘wjy’的操作,by access表示监视所有访问操作(包括select、insert、update、delete等)。 

你可以使用以下命令查看审计结果:  

select username 用户,action_name 行为,timestamp 时间
from dba_audit_trail
where username='wjy';

2.例如: 针对oracle数据库监视所有登录不成功的用户。

audit failed login;

这个命令将监视所有登录不成功的用户,并将审计跟踪结果存储在数据库中的sys.aud$表中。

你可以使用以下命令查看审计结果: 

select * from dba_audit_trail where action_name = 'logon' and returncode != 0;

这将显示所有登录不成功的用户的审计结果。 

3.小tips 

  • 数据多了,查询结果会非常的不好看。分别执行下面3条语句再次查询。

set linesize 1000;
set pagesize 50;
set tab off;

四、其他审计选项

  • by access 每一个被审计的操作都会生成一条audit trail。
  • by session 一个会话里面同类型的操作只会生成一条audit trail,默认为by session。
  • whenever successful 操作成功(dba_audit_trail中returncode字段为0) 才审计,
  • whenever not successful 反之。省略该子句的话,不管操作成功与否都会审计。

五、视图(表)

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列的含义(注意前面加'-')

六、撤销、清空

noaudit all on t_test; 撤销审计

truncate table aud$; 清空审计表内容

总结 

到此这篇关于oracle数据库审计功能的文章就介绍到这了,更多相关oracle审计功能内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

  • Oracle中行列转换的实现方法汇总

    行列转换是指将行数据转换为列数据,或将列数据转换为行数据的过程。这通常使用的办法是用pivot和unpivot函数来实现。这里描述两种方法分别实现行列转换!!!首先创建表:学生表:…

    2024年05月18日 数据库
  • oracle数据库的基本使用教程(建表,操作表等)

    一、表空间,用户1、创建表空间使用system登录创建表空间waterboss 为表空间名称datafile 用于设置物理文件名称size 用于设置表空间的初始大小autoexte…

    2024年05月18日 数据库
  • Oracle 12.2处理sysaux空间占满问题

    基本环境数据库:oracle 12.2 rac操作系统:unix&solaris 11.3报错现像今天处理别的问题查看告警日志偶然发现大量的报错,无法扩展sysaux表空间…

    2024年05月18日 数据库
  • Oracle分区表超详细讲解(Oracle Partitioned Tables)

    前言当单表数据量随着时间变的越来越大时,会给数据的管理和查询带来不便。我们可以考虑对表进行分区,利用分区表特性将数据分成小块存储,可以大幅提升查询性能,管理便捷性及数据的可用性。一…

    2024年05月18日 数据库
  • Oracle查看执行计划的实现

    一、什么是执行计划?执行计划是由oracle数据库系统生成的,它描述了sql语句的执行方式,包括sql语句的执行顺序、使用的索引、表之间的连接方式等等。执行计划可以通过多种方式获取…

    2024年05月18日 数据库
  • oracle数据库如何给用户授权查询权限

    oracle数据库如何给用户授权查询权限

    一.管理员账号登录授权是授予用户对数据库对象的某些操作权限,一般需要用system,sys等管理员账户才能实现对其他数据库用户的授权。所以首先需要用管理员账号登... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com