【简单易懂】Oracle审计功能

目录

一、查看是否开启审计

二、开启审计

1.用sysdba登录

2.修改第一步的参数值

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

二、关闭审计 

三、审计策略

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

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

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

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

3.小tips 

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

四、其他审计选项

五、视图(表)

六、撤销、清空


一、查看是否开启审计

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$; 清空审计表内容

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Oracle数据库是一个关系型数据库管理系统(RDBMS),它采用了客户端/服务器架构,其工作原理如下: 1. 数据库的物理存储:Oracle数据库使用数据文件来存储数据,每个数据文件都由多个数据块组成,每个数据块的大小可以配置,通常为8KB或16KB。Oracle数据库还使用日志文件(redo log和undo log)来记录数据修改和回滚操作。 2. 数据库的逻辑结构:Oracle数据库由表、索引、视图、存储过程等多个逻辑对象组成。表是存储数据的最基本的对象,索引用于加速数据的检索,视图是对表的逻辑上的封装,存储过程是一段可重复使用的程序代码。 3. 数据库的事务机制:Oracle数据库使用ACID模型来保证事务的原子性、一致性、隔离性和持久性。当一个事务被提交时,Oracle会将其所有的修改操作记录到日志文件中,以便在需要时进行回滚或数据恢复。 4. 数据库的并发控制:Oracle数据库使用多版本并发控制(MVCC)来实现并发控制。在MVCC模型中,每个事务看到的数据都是数据库中某个时间点的“快照”,不同的事务之间可以并行执行而不会相互干扰。 5. 数据库的查询优化:Oracle数据库使用CBO(Cost-Based Optimizer)和RBO(Rule-Based Optimizer)两种查询优化器来优化查询语句,使其能够在最短的时间内返回最优的结果。CBO会根据统计信息和成本模型来选择最佳的执行计划,而RBO则根据预定义的规则来选择执行计划。 总之,Oracle数据库工作原理非常复杂,但是在实际使用中,我们只需要了解一些基本的概念和原理即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前程的前程也迷茫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值