oracle 标准数据库审核

oracle 提供了四种方式对于数据库操作的审核,

其中一种是基于sysdba  dba权限用户的审核,,这种oracle的超级管理员用户可以检测到所有普通的用户的操作,,这是肯定的,但是在一般情况下,即使是dba管理员也希望能够被监控自己做了什么操作,,以便在发生数据库崩溃时,可以拿出保证自己没有胡乱操作的依据,,这也是表明是严格按照标准去管理的。


1除了第一种审核之外,还另外提供了三种审核方式:

①数据库审核:能够跟踪特定权限的使用,特定命令的执行,例如 一般的dml语句   和ddl 操作, (创建表或,对表数据进行操作),数据库会话请求,等。。

② 基于值的审核:可以通过声明一个触发器,,在对数据表数据进行修改的时候,触发一个pl/sql 块的执行,记录操作 的细节。

③ 细粒度审核:允许根据所访问的记录来跟踪对表的访问,,细粒度审核提供了更为精确的审核,并且可以限制审核记录的范围,只提取必要审核记录。

2 审核sysdba 用户的活动:

①如果要审核sysdba用户的活动需要把实力参数  audit_sys_operations 设置为true  ,这样作为sysdba sysoper  外部身份认证的方式登录数据库用户所进行的每条操作的语句,都会被操作系统的审核跟踪,这里的记录是完整的。

需要注意的是:dba用户不能为操作系统的超级管理员,,如果dba同样也为操作系统的超级管理员那么审核跟踪记录可能会被dba 管理员所篡改,,这就失去了审核的意义,

   sys的审核记录的文件夹在不同的平台上管理不同,window是  是 window application log   linux系统  在 audit_file_dest  参数定义的位置。

3  数据库审核:

① 在设置数据库审核之前必须设置 audit_trail 实例参数,可以设置的参数值如下:

none 或者false :  禁用数据库审核。

OS: 审核记录会被写入操作系统审核跟踪。

DB: 审核记录会被写入数据字典表 SYS.AUD$  ,

DB_EXTENDED  审核记录会包含具体绑定变量的sql语句被写入数据字典表 SYS.AUD$  

XML : 以xml格式写入操作系统审核跟踪。

XML_EXTENDED : 记录绑定具体变量的sql 写入操作系统审核跟踪。


使用audit 配置数据库审核跟踪

例: 审核权限使用,  audit  create any trigger;     在授予任意用户create any trigger权限时将记录记入审核跟踪。

为每个会话生成一条审核记录: audit   insert   on  owner.tablename  whenver successful by session ;

每次执行都生成一条审核记录:    audit   insert   on  owner.tablename  by access;

审核用户登录:  audit  session whenever not successful.


   ② 提问: 怎样查看审核跟踪记录呢?

需要依据 audit_trail  实例参数的配置, 如果配置为 OS XML XML_EXTENDED 那么根据操作系统的不同(参考2 ①)审核跟踪记录会以文件的形式保存在操作系 统中, 如果 配置为 DB 或 DB_EXTENDED  审核记录会被记录入 SYS.AUD$ 表中,可以通过查询视图  DBA_AUDIT_TRAIL                                                                                        (DBA_AUDIT_OBJECT,DBA_AUDIT_STATEMENT,DBA_AUDIT_SESSION)查看审核记录。


4  使用触发器基于值的审核:

声明触发器  create or replace  trigger   owner.triggername

after update of  column

on owner.tablename  REFERENCING NEW AS NEW  OLD AS OLD

for each row

begin

        if  :old.cloumn!=;new.column then

insert  into owner.tablename values(sys_context('uesrenv','os_suer'),  sys_context('userenv','ip_address'), :new.column || ' column change from '|| :old.column || ' to ' || :new.column);

         end if;

           end;

/


5 细粒度审核:


① 细粒度审核(fine-grained auditing fga)可配置精确到单元行 和单元列。

② 配置fga 需要通过dbsm_fga 包的一个存储过程 add_policy.

③ 查看fga结果 可以查询 DBA_FGA_AUDIT_TRAIL 视图。

例子:

execute  dbms_fga.add_policy(object_schema=>'hr', object_name=>'jobs',policy_name=>'pol1',audit_condition=>'MIN_SALARY>5000' ,                                          audit_column=>JOB_TITLE');

        捕获读取hr 的jobs 表,对列job_title  的所有select 查询,且对应的职位薪资是大于5000的。


补充:  DBA_AUDIT_TRIAL  视图 显示标准数据库审核  DBA_FGA_AUDTI_TARIL视图  显示fga(细粒度审核)  ,  DBA_COMMON_AUDIT_TRAIL视图 两者都显示。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值