9 - 实施Oracle审计

第九课

实施Oracle审计
Oracle 12c推出一套全新的审计架构,称为统一审计功能。
在这里插入图片描述
 Oracle提供细粒度的授权控制来限制数据库访问。
 Oracle支持通过高级安全选件来使用高级验证技术(如基于令牌、生物学和证书的身份识别技术)。
 即使经过授权和验证的用户有时也会钻系统漏洞。为了跟踪用户活动和确定可疑活动的变化趋向,Oracle提供了很多审计工具。
在这里插入图片描述
如果审计设置不当,则会对系统性能产生明显的影响。
标准数据库审计:audit_trail=db,审计对象和权限,使用audit命令。
基于值的审计: 捕获插入、更新或删除的实际值,通过数据库触发器实现。
细粒度审计FGA: 扩展了标准数据库审计的功能,从而可捕获发出的实际 SQL语句,而不仅仅是发生事件的情况。

强制审计:
无论配置与否,都要审核几个操作:

在这里插入图片描述
统一审计:

select * from v$option where parameter='Unified Auditing';

统一审计是一个替代标准审计的新技术。
所有的审计records存储在一个审计表中。
AUDSYS. AUD$UNIFIED只读表,不能DML操作
unified_audit_trail 视图(查看审计记录)
在这里插入图片描述
在这里插入图片描述

AUDSYS用户
select * from unified_audit_trail;(查看审计记录)
在这里插入图片描述
exec dbms_audit_mgmt.flush_unified_audit_trail;(实时刷新审计记录)

BEGIN
  dbms_audit_mgmt.flush_unified_audit_trail;
END;

开启统一审计:
1.查询是否开启统一审计
select * from v$option where parameter=‘Unified Auditing’;
2.关闭实例和监听
shutdown immediate
lsnrctl stop
3.启用统一审计

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk uniaud_on ioracle ORACLE_HOME=$ORACLE_HOME

cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk uniaud_off ioracle ORACLE_HOME=$ORACLE_HOME

4.启动监听和实例,然后再次查询v$option视图
在这里插入图片描述
ORA_SECURECONFIG:和标准审计一样
ORA_DATABASE_PARAMETER:捕获alter database、alter system、create spfile。
ORA_ACCOUNT_MGMT:捕获create user、alter user、drop user、create role、drop role、alter role、set role、grant、revoke。
在这里插入图片描述
创建审计策略:
1.使用命令
create audit policy select_t actions select on ouzy.t;
select * from unified_audit_trail;
2.使用EMCC
在这里插入图片描述

select * from unified_audit_trail;

select distinct policy_name from audit_unified_policies;
select * from audit_unified_enabled_policies;

select * from unified_audit_trail;
select OBJECT_NAME,SQL_TEXT,UNIFIED_AUDIT_POLICIES from unified_audit_trail;

在这里插入图片描述

alter audit policy SELECT_T condition 'SYS_CONTEXT(''USERENV'', ''SESSION_USER'') = ''OUZY''' evaluate per Statement

在这里插入图片描述
在这里插入图片描述
审核类别
类别 要指定的内容
privileges 一个或多个系统/对象权限
actions 一个或多个SQL命令
roles 一个或多个角色
混合
select * from auditable_system_actions;(查询系统的actions)
在这里插入图片描述
select * from auditable_object_actions;(查询对象的actions)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
默认情况下,审计记录不实时写入审计表中,而是通过一个内存中的缓存队列来写入。gen进程负责把队列的记录异步写入到表中。

--立即写入磁盘中
begin
dbms_audit_mgmt.set_audit_trail_property(
audit_trail_type => dbms_audit_mgmt.AUDIT_TRAIL_UNIFIED,
audit_trail_property => dbms_audit_mgmt.AUDIT_TRAIL_WRITE_MODE,
audit_trail_property_value => dbms_audit_mgmt.AUDIT_TRAIL_IMMEDIATE_WRITE);
end;
/
--改回默认的队列写入模式
begin
dbms_audit_mgmt.set_audit_trail_property(
audit_trail_type => dbms_audit_mgmt.AUDIT_TRAIL_UNIFIED,
audit_trail_property => dbms_audit_mgmt.AUDIT_TRAIL_WRITE_MODE,
audit_trail_property_value => dbms_audit_mgmt.AUDIT_TRAIL_QUEUED_WRITE);
end;
/

在这里插入图片描述
在这里插入图片描述

在许多情况下,会使用细粒度审计(FGA) 功能,而不会使用基于值的触发器。
在这里插入图片描述
在这里插入图片描述

BEGIN
  dbms_fga.add_policy
(object_schema => 'OUZY'
                     ,object_name => 'T'
                     ,policy_name => 'audit_t'
                     ,audit_column => 'object_name,status'
                     ,ENABLE => TRUE
                     ,statement_types => 'SELECT,UPDATE');
END;

BEGIN
  dbms_fga.disable_policy(object_schema => 'OUZY'
                         ,object_name => 'T'
                         ,policy_name => 'audit_t');
END;

BEGIN
  dbms_fga.drop_policy(object_schema => 'OUZY'
                      ,object_name => 'T'
                      ,policy_name => 'audit_t');
END;
select * from dba_audit_policies;(查看fga审计视图)
select * from unified_audit_trail; (审计结果查看)
select OBJECT_NAME,SQL_TEXT,UNIFIED_AUDIT_POLICIES,fga_policy_name from unified_audit_trail;

在这里插入图片描述
在这里插入图片描述
归档和清除:
在这里插入图片描述在这里插入图片描述
–设置清理
begin
dbms_audit_mgmt.clean_audit_trail(
audit_trail_type => dbms_audit_mgmt.AUDIT_TRAIL_UNIFIED,
use_last_arch_timestamp => TRUE);
end;
–设置归档上次归档时间
BEGIN
dbms_audit_mgmt.set_last_archive_timestamp(
audit_trail_type =>
dbms_audit_mgmt.AUDIT_TRAIL_UNIFIED,
last_archive_time => SYSTIMESTAMP);
END;

–设置归档上次归档时间(按UTC时间-8小时)
begin
dbms_audit_mgmt.set_last_archive_timestamp(
audit_trail_type => dbms_audit_mgmt.AUDIT_TRAIL_UNIFIED,
last_archive_time => systimestamp-8/24);
end;
如果是AUDIT_TRAIL_UNIFIED,则是UTC时间。
SELECT * FROM dba_audit_mgmt_last_arch_ts;(查询上次归档时间)
注意时区(默认UTC时间,而系统时间设置默认为CST,相差8小时)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值