返回顶部
首页 > 资讯 > 数据库 >谈一谈Oracle11gR2的审计管理
  • 741
分享到

谈一谈Oracle11gR2的审计管理

2024-04-02 19:04:59 741人浏览 安东尼
摘要

谈一谈Oracle11gR2的审计管理作者:赵全文 网名:guestart  在oracle数据库的安全特性当中,审计被作为特别重要的一个方面。数据库的审计功能主要是用来审计各种类型的DDL和DM


谈一谈Oracle11gR2的审计管理

作者:赵全文 网名:guestart


谈一谈Oracle11gR2的审计管理


  在oracle数据库安全特性当中,审计被作为特别重要的一个方面。数据库的审计功能主要是用来审计各种类型的DDL和DML语句,而审计管理作为一项新特性被引进到Oracle的11g R1版本当中,此时它的审计功能并不强大而且还有许多bug,然而到了11gR2时,已经修复了很多bug及它的审计功能进一步增强。

  今天我和大家分享一下,在Oracle 11gR2的版本中,有关审计的一些特性。出于美国安全法,Oracle在11g 的版本对审计管理的策略有所改变,初始化参数AUDIT_TRaiL的默认值为'DB',也就是说把所有的审计数据都存放到AUD$表,而这个表又默认是在SYSTEM的表空间里。

  当我们在生产环境中部署一套Oracle数据库以后,默认审计功能是开启的,业务刚上线那段时间,数据量不大时,SYSTEM表空间的容量很宽裕,并没有什么压力。当业务运行了一段时间,突然有一天,前端应用就会反映说,数据库特别慢。这时我们DBA对数据库进行各种检查,就会发现SYSTEM表空间的已用空间百分比为99.97%,这一点毫不夸张,我就亲身经历过。我们说这是事后救火,其实我们完全可以在上线前,把AUD$表迁移到其它的专门存放审计数据的表空间,在业务上线并运行一段时间之后,评估一下审计数据的数据量,然后设置审计数据的维护策略。

  下面,我们采取三种方法对Oracle数据库的审计进行设置。严格的来说,是两种方法,第一种更为粗暴,直接关闭审计功能,就是将初始化参数AUDIT_TRAIL的值设为'NONE',然后重启数据库使之生效;第二种和第三种是针对开启数据库审计功能的维护管理。在生产环境中,不建议使用第一种,因为关闭审计以后,数据库出现安全隐患以后不利于排查分析。为了大家有所了解,我也一并演示操作。

  首先,查看数据库的版本,我所演示的环境为Oracle 11.2.0.4.0。

谈一谈Oracle11gR2的审计管理

第一种方法,关闭审计功能。

谈一谈Oracle11gR2的审计管理

谈一谈Oracle11gR2的审计管理

第二种方法,把SYSTEM表空间里的AUD$表迁移到其它的表空间,以减轻SYSTEM表空间的压力。

(1)查询AUD$表所在的表空间

谈一谈Oracle11gR2的审计管理

(2)查询AUD$表的数据量有多少,发现竟然有80多G

谈一谈Oracle11gR2的审计管理

(3)创建专门存放AUD$表的单独的表空间AUDIT_TBS

谈一谈Oracle11gR2的审计管理

(4)迁移AUD$表到新的表空间AUDIT_TBS

使用Oracle自带的包DBMS_AUDIT_MGMT中的存储过程SET_AUDIT_TRAIL_LOCATioN来实现,该存储过程接受2个参数,顺序依次是AUDIT_TRAIL_TYPE和AUDIT_TRAIL_LOCATION_VALUE,参见官方文档的如下截图,

谈一谈Oracle11gR2的审计管理


谈一谈Oracle11gR2的审计管理

其中参数AUDIT_TRAIL_TYPE有以下几种取值,见官方文档的如下截图,

谈一谈Oracle11gR2的审计管理

各种取值的中文解释如下:

AUDIT_TRAIL_ALL 所有的审计类型,包括标准数据库审计、细粒度审计、操作系统审计和XML文件审计

AUDIT_TRAIL_AUD_STD 标准数据库审计

AUDIT_TRAIL_DB_STD 标准数据库审计和细粒度审计

AUDIT_TRAIL_FGA_STD 细粒度审计

AUDIT_TRAIL_FILES 操作系统和XML文件审计

AUDIT_TRAIL_OS 操作系统审计,审计数据存放在操作系统的文件里

AUDIT_TRAIL_XML XML文件审计,审计数据存放在XML文件里

在这里,我们使用标准数据库审计,所以使用参数AUDIT_TRAIL_AUD_STD。

参数AUDIT_TRAIL_LOCATION_TYPE的取值是要迁移到的表空间的名字AUDIT_TBS,要执行的存储过程如下图所示,

谈一谈Oracle11gR2的审计管理

从中发现,执行了将近一个小时,才迁移完成。

此时,AUDIT_TBS表空间已有数据,SYSTEM表空间已经释放,压力减轻。见下图所示,

谈一谈Oracle11gR2的审计管理


谈一谈Oracle11gR2的审计管理

第三种方法,上面虽然减轻了SYSTEM表空间的压力,但是如果不对审计数据进行定时清除和归档这种维护管理的话,新的表空间的容量也会有不足的时候,因此也需要不定期的扩充容量才可以。显然,这也不是个完美的解决办法。下面给审计设置维护策略, 6 / 12

(1)查询AUD$表的数据开始生成的时间戳,现在是2017年2月8日,说明审计数据已保留了将近8个月。

谈一谈Oracle11gR2的审计管理

(2)用Oracle自带的包DBMS_AUDIT_MGMT中的存储过程SET_AUDIT_TRAIL_PROPERTY设置审计的维护属性,即每清除多少条数据提交一次。该存储过程接受3个参数,顺序依次是AUDIT_TRAIL_TYPE、AUDIT_TRAIL_PROPERTY和AUDIT_TRAIL_PROPERTY_VALUE。

其中参数AUDIT_TRAIL_TYPE的取值在第二种方法已说明,参数AUDIT_TRAIL_PROPERTY和AUDIT_TRAIL_PROPERTY_VALUE的取值见下面的官方文档说明,

谈一谈Oracle11gR2的审计管理

这里,我们使用参数AUDIT_TRAIL_TYPE的取值为AUDIT_TRAIL_AUD_STD,参数AUDIT_TRAIL_PROPERTY的取值为DB_DELETE_BATCH_SIZE,参数AUDIT_TRAIL_PROPERTY_VALUE的取值为10000。那么执行下面的存储过程,

谈一谈Oracle11gR2的审计管理

(3)用Oracle自带的包DBMS_AUDIT_MGMT中的存储过程INIT_CLEANUP设置审计数据保留的天数,该存储过程接受2个参数,顺序依次是AUDIT_TRAIL_TYPE和DEFAULT_CLEANUP_INTERVAL。见官方文档的说明,其中参数DEFAULT_CLEANUP_INTERVAL的取值为1至999,单位为小时。

谈一谈Oracle11gR2的审计管理

用Oracle自带的包DBMS_AUDIT_MGMT中的存储过程SET_LAST_ARCHive_TIMESTAMP设置上次归档审计记录的时间戳,该存储过程接受2个参数,顺序依次是AUDIT_TRAIL_TYPE、LAST_ARCHIVE_TIME和RAC_INSTANCE_NUMBER。见官文档的说明,参数RAC_INSTANCE_NUMBER取默认值NULL,可以不写。

谈一谈Oracle11gR2的审计管理

这里,我们设置审计数据保留的天数为30天,即720小时,上次归档审计记录的时间戳为30天之前。那么执行下面的存储过程,

谈一谈Oracle11gR2的审计管理

(4)用Oracle自带的包DBMS_AUDIT_MGMT中的存储过程CREATE_PURGE_JOB设置每隔多长时间清除审计数据的JOB,该存储过程接受4个参数,顺序依次是AUDIT_TRAIL_TYPE、AUDIT_TRAIL_PURGE_INTERVAL、AUDIT_TRAIL_PURGE_NAME和USE_LAST_ARCH_TIMESTAMP。见官方文档的说明,

谈一谈Oracle11gR2的审计管理

这里,我们每隔7天,即168小时清除一次审计数据,那么设参数AUDIT_TRAIL_PURGE_INTERVAL的值为168,设参数USE_LAST_ARCH_TIMESTAMP的值为TRUE(也是默认值)。那么执行下面的存储过程,

谈一谈Oracle11gR2的审计管理

同时,在EMCC 12C的监控界面下已经看到一个名叫“PURGE_AUD_STD”的JOB在运行,还有相应的sql也在运行。见下图,

谈一谈Oracle11gR2的审计管理


谈一谈Oracle11gR2的审计管理


谈一谈Oracle11gR2的审计管理

  由于上次以来没有进行审计清理,现在保留了近8个月的数据,所以现在一次清理,只保留30天的数据会稍显费时。不过执行完这次JOB,以后再清理历史数据就不费吹灰之力了。

  上面就把三种维护审计的方法都介绍完了,我们演示的只是将审计数据保存在DB里,其实还可以保存在OS和XML里,不过我不建议这样做,按照官方文档来说,保存在DB里由Oracle进行维护会减少和OS通信的IO操作。

总结:

1.直接关闭审计,修改初始化参数AUDIT_TRAIL的值为NONE,并重启数据库生效;

2.将SYSTEM表空间中的AUD$表迁移到其它的表空间,以减轻SYSTEM表空间的压力;

3.在第2种方法的基础上,设置审计数据保留天数并定时清除过期的审计数据。


另外,本文在编写过程中,参考了以下网址,特别说明

官方文档 https://docs.oracle.com/cd/E18283_01/appdev.112/e16760/d_audit_mgmt.htm#BABDAHBG

oraclewiki Http://www.oracle-wiki.net/startdocshowtomanageaudit

Laurent Leturgez https://laurent-leturgez.com/2011/06/09/managing-database-audit-trail-in-oracle-11gr2/

Suresh Karthikeyan https://www.pythian.com/blog/oracle-database-script-to-purge-aud-table-using-dbms_audit_mgmt-package/


  如果您觉得此篇文章对您有帮助,欢迎关注微信公众号:guestart的DBA学习笔记,您的支持是对我最大的鼓励!

谈一谈Oracle11gR2的审计管理

您可能感兴趣的文档:

--结束END--

本文标题: 谈一谈Oracle11gR2的审计管理

本文链接: https://lsjlt.com/news/50629.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 谈一谈Oracle11gR2的审计管理
    谈一谈Oracle11gR2的审计管理作者:赵全文 网名:guestart  在Oracle数据库的安全特性当中,审计被作为特别重要的一个方面。数据库的审计功能主要是用来审计各种类型的DDL和DM...
    99+
    2024-04-02
  • 设计 | 基于 Redis 谈一谈缓存设计思想
    王奇 顾问软件工程师 目前从事 PaaS 中间件服务(Redis/MongoDB/ELK 等)开发工作,对 NoSQL 数据库有深入的研究以及丰富的二次开发经验,热衷对 NoSQL 数据库领域内的最新技术动态的学习,能够把握行业技术发展...
    99+
    2020-08-06
    设计 | 基于 Redis 谈一谈缓存设计思想
  • 详细谈谈Spring事务是如何管理的
    目录前言Spring事务抽象PlatformTransactionManager是事务管理器接口常见的事务管理器有以下几种定义事务的一些参数: 7种事务传播特性: 四种事务隔离级别:...
    99+
    2024-04-02
  • 谈谈gitlabce不一样的logo
    GitLab是一个强大的开源代码托管平台,它为开发人员提供了一种免费、简便的方式来管理其源代码,并为协作开发提供了许多的工具和功能。不过,早在2020年5月,GitLab宣布了一些重要的变化。其中一个最受关注的变化之一是GitLab的Log...
    99+
    2023-10-22
  • IT民工谈IT管理和AD设计-3
    上帝说要有光,于是世界就有了光。用户说,我要用word,于是word就安装到了他的桌面。用户说我要word 2003,我们告诉word 2007更好。用户感觉有些愤怒,感觉他的并不是上帝。是的,其实我们只提供office 2010和20...
    99+
    2023-01-31
    民工 AD
  • 谈谈对Vue Router的理解
    目录1.1 相关理解1.1.1 vue-router 的理解1.1.2 对 SPA 应用的理解1.1.3 路由的理解1.2 基本路由1.2.1...
    99+
    2022-11-13
    Vue Router Vue Router入门 Vue Router详解
  • 谈谈消息队列的设计与实现
    消息队列是一种存储和传递消息的机制,用于实现应用程序之间的异步通信。它可以帮助解耦应用程序的组件,提高系统的可伸缩性和可靠性。消息队...
    99+
    2023-09-21
    消息队列
  • 浅谈Java springboot日志管理
    一、前言 springboot默认使用Logback组件作为日志管理。Logback是由log4j创始人设计的一个开源日志组件。 在springboot项目中我们不需要额外的添加Lo...
    99+
    2024-04-02
  • 谈谈对Pytorch中的forward的理解
    目录写在前面正文为什么都用def forward,而不改个名字?forward有什么特殊功能?第一条:.forward()可以不写第二条:优先运行forward方法总结写在前面 以下...
    99+
    2023-05-14
    Pytorch中的forward Pytorch forward
  • 谈谈FPGA设计的实现过程-设计流程入门
    FPGA(Field-Programmable Gate Array)是一种可编程逻辑设备,可以实现各种数字电路设计。FPGA设计的...
    99+
    2023-09-23
    FPGA
  • 谈谈Android6.0运行时的权限处理
    运行时权限介绍 Android 6.0在我们原有的AndroidManifest.xml声明权限的基础上, 又新增了运行时权限动态检测,以下权限都需要在运行时判断: &nb...
    99+
    2022-06-06
    运行 Android
  • 浅谈化工行业的地磅管理
    一. 化工企业的地磅管理需求 化工行业大宗原材料和燃料的管理需求非常高,以一个中大型的化工企业为例。 年产值 100亿 以大宗原材料和燃料形态存在的价值 60-70亿 每日资金周转额度 1500万 每分钟资金周转额度 10000 ...
    99+
    2023-06-05
  • MYSQL8安全之审计管理
    MYSQL8安全之审计管理 审计概念一、MYSQL8开源审计mysql-auditmysql-audit安装配置0、下载解压插件1、查看mysql的插件位置2、上传库文件到插件目录3. 修改m...
    99+
    2023-09-07
    安全 mysql 数据库
  • Windows Server 2008 帐户管理经验谈
      相比传统操作系统,Windows Server 2008系统的功能强大是全方位的,这不仅表现在该系统新增加了若干个安全功能,同时也表现在传统的功能也有了明显的改进与完善。这不,看似非常普通的用户帐号管理功能,在Win...
    99+
    2023-05-24
    管理 帐户 系统 Windows 用户 Server 选项 设置 终端 经验谈 2008
  • 详谈Spring框架之事务管理
    一、编程式事务二、声明式事务1、基于XML的事务1.1 Spring配置文件 <!-- 配置c3p0数据源,只是进行了最简单的配置 --> <bean id="dataSource" class="com.mchange...
    99+
    2023-05-31
    spring 框架 事务管理
  • 谈一谈Linux系统重要的子目录问题
    /etc/fstab   机自动挂载分区/磁盘,规定哪个分区/设备,挂载到哪里 [root@oldboy ~]# cat /etc/fstab # # /etc/fstab # Created by anacond...
    99+
    2022-06-04
    linux 子目录
  • 浅谈对于DAO设计模式的理解
    为了降低耦合性,提出了DAO封装数据库操作的设计模式。它可以实现业务逻辑与数据库访问相分离。相对来说,数据库是比较稳定的,其中DAO组件依赖于数据库系统,提供数据库访问的接口。一般的DAO的封装由以下另个原则: · 一个表对应一个...
    99+
    2023-05-31
    dao 设计模式 %d
  • 浅谈C++有理数的表达和计算
    #ifndef Rational_hpp #define Rational_hpp #include <stdio.h> #include <string>...
    99+
    2024-04-02
  • 谈谈iOS中的多继承与多重代理
    前言 多继承和多重代理在swift的语言层面上是不支持的,但我们有时会遇到这样的问题: 类B和C分别继承自A,B1和B2继承自B,C1和C2继承自C.现在我们需要在B1和C1中...
    99+
    2022-06-05
    ios 多继承 多重代理
  • 谈谈自己的理解:python中闭包,闭包
    闭包这个概念好难理解,身边朋友们好多都稀里糊涂的,稀里糊涂的林老冷希望写下这篇文章能够对稀里糊涂的伙伴们有一些帮助~请大家跟我理解一下,如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。闭包:   在一个外函...
    99+
    2023-01-31
    自己的 python 中闭包
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作