热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle数据库数据访问安全与审计方案

Oracle数据库数据访问安全与审计方案,数据库系统是Oracle9.2.0.1,它的审计功能可实现该需求。

Oracle数据库数据访问安全与审计方案,数据库系统是Oracle9.2.0.1,它的审计功能可实现该需求。

这是一份真实的客户需求实现方案。客户要求监控到某些关键表在什么时间段、什么用户、什么应用程序以及访问哪些具体的记录。

数据库系统是Oracle9.2.0.1,它的审计功能可实现该需求。

基于审计对正常运行的应用的性能压力,需要设置特定时间段的数据访问审计。

从审计日志中获得的监控详细信息,那些表被什么应用访问,什么时候访问。提供详细报告信息。

1 审计功能原理

Oracle数据库的审计功能来分析管理数据库的访问安全。

通常,审计的用途如下:

可审计特定的用户、表、或具体的行的当前操作,或者影响特定的内容。

例如,什么用户查询了什么表,甚至表中那些记录。

调查可疑的操作。

例如,如果有用户正在删除某些表的数据,审计人员可使用审计功能审计所有的数据库连接,数据库成功或者不成功的删除操作。

通报没有被授权的用户正操作或者删除数据的所有者,该非法用户有过多的不被允许的权限,可检查出权限设置问题。

监控和收集特殊的数据库行为的数据。

检测授权和访问控制的实施的问题。

例如,可以创建一个希望的审计策略。这个审计策略保证其他情况下绝不会生成审计记录。但是,如果这个策略下生成了审计记录,就可以知道有其他的安全控制没有被正确地实现。

审计一般分为四类,分别为语句审计、权限审计、对象审计、细粒度审计。

其中前三类为标准审计,在ORACLE数据库各个版本中都有,最后一类称为细粒度审计,在ORACLE9i以后的版本中出现,并在10g中功能增强。

语句审计 可审计特定类型的操作语句,甚至可以审计某些类型的一系列操作。如,audit table可审计表上的所有的DDL语句。

权限审计 可审计相关操作的系统权限。如,audit create table。

对象审计 可审计精确的对象上的明确的语句,如audit select on temployees。

对象审计更精确,可审计一个对象上唯一一个明确类型的语句,并且作用于数据库中所有的用户。

细粒度审计 可审计基于内容的细粒度的数据访问和操作,如某个字段的值大于某值。

在ORACLE10g中,就这两大类审计,比较两者的异同。

标准审计必须用参数 AUDIT_TRAIL 在数据库级启用。这个参数不是动态的;必须重启数据库来使其生效。相比而言,细粒度审计不需要任何参数修改。

一旦被设置在一个对象上,标准审计将保持在那里。要解除它,必须用 NOAUDIT 命令删除审计选项。这可能很不方便,因为在一个表上丢弃审计选项也将丢弃元数据信息。然而,细粒度审计 可以临时禁用和启用,不丢失任何元数据信息。

细粒度审计 只能够处理四种类型的语句:SELECT、INSERT、UPDATE 和 DELETE。相比而言,常规审计可以处理其它许多语句和权限,甚至会话连接和断开。

标准审计每次会话只创建一条记录(按会话)或每次访问对象创建一条记录(按访问)这种占用资源很少的方式对于控制审计线索表中的空间非常重要。细粒度审计 并不是同样节省资源;它每次访问运行一次 — 使得线索更大。

通过记录线索,标准审计可以用来检测任何中断企图,如果企图没有成功,则将产生错误代码。而 细粒度审计不能。

标准审计可以写数据库表或 OS 文件。后者在审计员(不是数据库管理员)能够访问线索时非常有用。这个选项保护了审计线索的完整性。然而,细粒度审计 日志仅写到数据库表 FGA_LOG$ 中。

标准审计可以设置用于默认对象。当表是在运行期创建时,这个功能变得极为有用:默认的审计选项允许没有数据库管理员干预的审计。这在 细粒度审计中是不可能的,用户必须在一个现有的表上创建策略,上述的情况只能在表已创建之后才可能发生。

在细粒度审计中,审计更加灵活 — 仅当访问某些列,当某个特定的条件为真时等等。这种多功能性在您需要控制线索的增长时非常方便。

在 细粒度审计 中,,SQL 赋值变量默认被捕获。在常规审计中,必须把初始化参数 audit_trail设为 db_extended,以启用这一功能。

权限上的差异:常规审计需要审计系统或语句权限;细粒度审计只需要 dbms_fga 程序包上的运行权限。

根据需求定义,采用对象审计功能。如果需求审计到具体表中的记录,可使用细粒度审计来实现。

在这里,使用对象审计功能来实现我们的项目需求。

linux

推荐阅读
  • 本文介绍如何通过整合SparkSQL与Hive来构建高效的用户画像环境,提高数据处理速度和查询效率。 ... [详细]
  • 本文详细介绍了Android系统的四层架构,包括应用程序层、应用框架层、库与Android运行时层以及Linux内核层,并提供了如何关闭Android系统的步骤。 ... [详细]
  • 探讨密码安全的重要性
    近期,多家知名网站如CSDN、人人网、多玩、开心网等的数据库相继被泄露,其中大量用户的账户密码因明文存储而暴露无遗。本文将探讨黑客获取密码的常见手段,网站如何安全存储用户信息,以及用户应如何保护自己的密码。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 本文介绍如何通过参数化查询来防止SQL注入攻击,确保数据库的安全性。示例代码展示了在C#中使用参数化查询添加学生信息的方法。 ... [详细]
  • 开发笔记:[14]SQL 别名
    开发笔记:[14]SQL 别名 ... [详细]
  • oracle 对硬件环境要求,Oracle 10G数据库软硬件环境的要求 ... [详细]
  • 本文介绍了GitHub上的一些Python开源项目,特别是IM(即时通讯)技术的应用。通过Sealtalk项目,探讨了如何利用开源SDK提升开发效率。 ... [详细]
  • Linux环境下MySQL的安装与配置
    本文详细介绍了在Linux系统上安装和配置MySQL的步骤,包括安装前的准备工作、下载和解压安装包、初始化数据库、配置文件编辑、启动服务以及设置开机自启动等。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中安装 Python 3.7 的步骤,包括编译工具的安装、Python 3.7 源码的下载与编译、软链接的创建以及常见错误的处理方法。 ... [详细]
  • 本文介绍了如何使用 SQL Server 的 OPENDATASOURCE 函数连接到不同的服务器和实例,并查询数据。 ... [详细]
  • 本文探讨如何在SQL Server中防止具有相同参数组合的记录被插入到表中,特别是在表中存在多个列的情况下。 ... [详细]
  • Java中的引用类型详解
    本文详细介绍了Java中的引用类型,包括强引用、软引用、弱引用和虚引用的特点和应用场景。 ... [详细]
  • Django与Python及其他Web框架的对比
    本文详细介绍了Django与其他Python Web框架(如Flask和Tornado)的区别,并探讨了Django的基本使用方法及与其他语言(如PHP)的比较。 ... [详细]
  • MySQL Administrator: 监控与管理工具
    本文介绍了 MySQL Administrator 的主要功能,包括图形化监控 MySQL 服务器的实时状态、连接健康度、内存健康度以及如何创建自定义的健康图表。此外,还详细解释了状态变量和系统变量的管理。 ... [详细]
author-avatar
txy001美丽人生_618
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有