一、何谓数据库审计?

数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,SQL语句执行,数据库对象访问这些方面的跟踪记录。

二、审记记录的存储方式

分为两种:一种是存储在操作系统文件中,一种是存储在system表空间中的SYS.AUD$表中。

三、对数据库性能影响的考虑

审计必然需要占用CPU,因此,需要综合平衡审计需求与性能之间的平衡性问题,以确定出最好的审许策略。

四、审记结果中包含哪些信息

前面讲到审许结果的存储分数据库存储和文件存储两种方式。对于数据库存储的情况,SYS.AUD$表中包含以下信息:

1)        ·操作系统用户名

2)        ·数据库用户名

3)        ·连接会话标识

4)        ·终端标识

5)        ·被访问的schema对象名

6)        ·尝试的操作

7)        ·操作的完整代码

8)        ·日期和时间戳

若审计记录存储在外部操作文件中,则该文件可能包含以下信息:

1)         ·操作系统产生的审计记录

2)         ·数据库的审计记录

3)         ·被审计到的数据库操作

4)         ·超级管理员(SYS)的审计记录

其中,被写到文件中的审计记录是以编码的方式存储的,如果要理解这些编码所对应的信息,可以查询以下数据字典表:

编码信息数据字典表

-------------------------------

数据库操作代码表示尝试的操作。它的相关描述可以从数据字典表AUDIT_ACTIONS表中查询到

操作所使用的权限可以在字典表SYSTEM_PRIVILEGE_MAP中查询到对应的说明

完整的操作代码操作成功时将返回0,失败时返回相关oracle错误信息,错误信息码所对应的说明可以从oracle官方文档中获得

--------------------------------

五、缺省的审计

不论当前是否已经开启的审计功能,数据库都会把一些数据库相关的操作写入外部审计文件中(注意:不是写入SYS.AUD$表),这些被缺省审计的操作是:

1)         ·以超级管理员权限对数据库的连接(connectASSYSDBA或connectASSYSOPER)

2)         ·数据库启动

3)         ·数据库停止

六、对超级管理员用户的操作行为的审计

超级管理员用户指的是以ASSYSDBA或ASSYSOPER方式连接数据库的用户。初始化参数AUDIT_SYS_OPERATIONS用来指定是超级管理员的审计选项,如果将AUDIT_SYS_OPERATIONS设置为TRUE,那么所有超级管理员的操作都将被审计,而不管当前是否有开启审计功能,而且所有的审计信息都被写入外部审计文件中(注意:不是写入SYS.AUD$表)。

七、执行审计

1.设定审计记录的存放位置

初始化参数AUDIT_TRAIL指定了审计记录的存放位置,该参数有三个取值:

1)         ·DB审计记录存放在数据库的SYS.AUD$表中

2)         ·OS审计记录存放在外部的操作系统文件中

3)         ·NONE关闭审计(缺省值)

初始化参数AUDIT_FILE_DEST指定了当审外部审记文件目标存储路径,其缺省值是$ORACLE_HOME/rdbms/audit

2.审计选项

这个审计选项指的是执行审计的AUDIT语句的可选项。AUDIT语句的语法请参考oracle官方SQL参考。

3.以实例说明审计

a.审计某用户的会话的创建与结束

AUDITSESSIONBYscott,fey;

b.审计所有用户的会话的创建与结束

AUDITSESSION;

c.审计删除表的操作

AUDITDELETEANYTABLE;

c.审计删除表的操作(限制:只审计删除失败的情况)

AUDITDELETEANYTABLEWHENEVERNOTSUCCESSFUL;

d.审计删除表的操作(限制:只审计删除成功的情况)

AUDITDELETEANYTABLEWHENEVERSUCCESSFUL;

e.审计删除表的操作(限制:同一个会话中相同的操作语句只审计一次)

AUDITDELETEANYTABLEBYSESSION;

(注:对于这种情况,如果审计记录被设定为存储在外部文件中时,这个效果是体现不出来的,因为oracle无法判断是否已经审计过相同的操作语句。)

f.审计删除表的操作(限制:每支删除语句都审计,不论同一会话中是否有多条相同的操作语句)

AUDITDELETEANYTABLEBYACCESS;

g.审计对fey.employee表的delete操作

AUDITDELETEONfey.employee;

h.审计对fey.employee表的delete、updet、insert操作

AUDITDELETE,UPDATE,INSERTONfey.employee;

八、停止审计

停止审计使用NOAUDIT语句,该语句的语法请参考oracle官方SQL参考。下面以实例说明NOAUDIT的使用:

a.停止所有对会话的创建与结束的审计

NOAUDITSESSION;

b.停止对用户fey,scott的会话的创建与结束的审计

NOAUDITSESSIONBYfey,scott;

c.停止审计删除表的操作

NOAUDITDELETEANYTABLE;

c.停止审计删除表的操作(限制:停止审计删除失败的情况)

NOAUDITDELETEANYTABLEWHENEVERNOTSUCCESSFUL;

d.停止审计删除表的操作(限制:停止审计删除成功的情况)

NOAUDITDELETEANYTABLEWHENEVERSUCCESSFUL;

g.停止审计对fey.employee表的delete操作

NOAUDITDELETEONfey.employee;

h.停止审计对fey.employee表的delete、updet、insert操作

NOAUDITDELETE,UPDATE,INSERTONfey.employee;

九、对审计记录表SYS.AUD$的管理

当SYS.AUD$表的审计记录越来越多的时候,以至达到存储极限时,会因为审计记录无法写入而产生错误。或许我还也需要对该表的数据进行一些转储或者碎片的整理,或是删除一些我们认为不再需要的审计记录。这些都是要考虑的事情。下面给出一个对该表进行存储碎片的整理的一个方法:

a.将该表的数据selectinto到另一个表中,或利用export导出到外部文件

b.truncate这张表(要以超级管理员登录才行)

c.再将原先转储的数据再加载进来。

也许我们需要对针对SYS.AUD$表的操作进行审计,如:AUDITINSERT,UPDATE,DELETEONsys.aud$BYACCESS;

十、Fine-Grained审计

如前面所述,审计的记录中并没有含操作所作用的数据,比如说,需要审计针对一个表的select,而且需要在审计记录中包含select语句所返回的数据。这时,就需要用到Fine-Grained审计。Fine-Grained审计是基于oracle的事件,其原理是在insert,update或delete相关的事件中截取相关的数据。属于orale程序开发的范畴。具体可以参考相关oracle文檔。

十一、审计相关的数据字典视图

STMT_AUDIT_OPTION_MAP

AUDIT_ACTIONS

ALL_DEF_AUDIT_OPTS

DBA_STMT_AUDIT_OPTS

DBA_PRIV_AUDIT_OPTS

DBA_OBJ_AUDIT_OPTS

USER_OBJ_AUDIT_OPTS

DBA_AUDIT_TRAIL

USER_AUDIT_TRAIL

DBA_AUDIT_OBJECT

USER_AUDIT_OBJECT

DBA_AUDIT_SESSION

USER_AUDIT_SESSION

DBA_AUDIT_STATEMENT

USER_AUDIT_STATEMENT

DBA_AUDIT_EXISTS

DBA_AUDIT_POLICIES

DBA_FGA_AUDIT_TRAIL

oracle数据库审计文件是哪个,oracle数据库审计相关推荐

  1. access数据库导入oracle数据库,将excel表格导入access数据库再导入oracle数据库方法-如何将ACCESS数据库的文件导入到ORACLE中?...

    怎样将excel中的数据导入到oracle数据库中 敢问楼主,表A存在几列,表B存在几列,表C存在几列 常规方法(表中列和excel中列一致) PLSQL 中 : select * from A up ...

  2. oracle 数据库bak文件怎么打开,Oracle数据库的参数文件备份与恢复

    Oracle数据库的参数文件包含两个文件: 一个是spfile二进制文件名字为spfilesid.ora(其中sid=你数据库的实例名称). 另一个是pfile文本文件的参数文件,名字为initsid ...

  3. oracle修改数据文件存储位置,oracle 修改数据库文件位置

    Oracle 体系结构 Oracle 服务器 如图所示:由oracle实例(INSTANCE)和数据库(database)组成. 1) Instance 实例用于管理和调用数据库,是由oracle系统 ...

  4. 什么是oracle数据库外部文件,无所不能:Oracle的数据库文件系统DBFS是什么鬼?-dbf是什么文件...

    张乐奕 云和恩墨副总经理,Oracle ACE总监,ACOUG 联合创始人 在Oracle11g新增了一个特别的功能-DBFS,从字面翻译,DBFS=DATABASE FILE SYSTEM(数据库文 ...

  5. oracle数据库dmp文件查看,查看oracle数据库dmp文件的字符集信息

    oracle的dmp文件的第2,第3字节记录了字符集信息 windows环境下我们可以通过winhex来查看,winhex支持4G以上大文件的秒速打开 如果你有java环境,也可以用java来读取dm ...

  6. oracle的aud文件是什么,oracle asm实例的aud文件问题

    oracle asm实例的aud文件问题 在Oracle 10g数据库服务器上,$ORACLE_HOME/rdbms/audit目录下,生成了大量的以aud为扩展名的文件. 查看一下日志文件内容,记录 ...

  7. ORACLE实例控制文件删除恢复,Oracle案例:损坏控制文件的恢复方法

    一: 损坏单个控制文件 损坏单个控制文件是比较容易恢复的,因为一般的数据库系统,控制文件都不是一个,而且所有的控制文件都互为镜相,只要拷贝一个好的控制文件替换坏的控制文件就可以了. 1.控制文件损坏, ...

  8. mysql导入数据库dmp文件怎么打开_20181112-PostgreSQL数据库dmp文件导入(记录一次数据导入)...

    20181112-PostgreSQL数据库dmp文件导入 标注:dmp文件导入,场景:多个schema导入 1. 环境准备: postgres集群master节点上,postgres用户执行以下操作 ...

  9. sql文件怎么导入数据库mysql_sql文件怎么用 导入数据库文件

    展开全部 其实导入的方法很简单,可32313133353236313431303231363533e78988e69d8331333365633836以采用工具导入和只用mysql命令界面导入两种方式 ...

最新文章

  1. 基于免费人脸识别的闸机开发及源码分享
  2. 从1到n整数中1出现的次数
  3. WCF-Discovery的协议基础:WS-Disvovery(客户端驱动探测服务)
  4. 彻底搞懂JavaScript执行机制
  5. ucore操作系统实验笔记 - Lab1
  6. powerdesigner 概念模型_“使用满足”分析框架下社交媒体用户持续使用行为的概念模型研究...
  7. 【牛客 - 369A】小D的剧场(线性dp)
  8. 相关与卷积、各种误差
  9. java 并发编程框架
  10. Intellij IDLE 中javafx使用与配置
  11. 开发人员一定要加入收藏夹的网站
  12. selenium+python模拟键盘操作
  13. 快手短视频怎么同步到头条?
  14. NRF2401使用详细说明
  15. Bupt桌游馆--共享资源清单
  16. 书单 | 带你轻松度假的10本好书!
  17. 记录一下解决win10无法分屏问题
  18. python命令窗口代码如何调整大小_如何调整python窗口(Tkinter)大小
  19. BZOJ3238 后缀自动机+推公式
  20. 智慧社区管理平台该如何选择?

热门文章

  1. Verilog 代码优化技巧
  2. 今年的双11,真的是太太太太太太香了!万元好礼回馈......
  3. 转:浅薄”绝不该是中国程序员的性格特征
  4. 计算中英文字符串的长度!
  5. 嵌入式软件调试:任务执行时间与负载率
  6. 视频会议直播中实现Web实时互动白板功能|Demo分享
  7. 3730-0阀门定位器的工作原理与操作
  8. 请详细说明如何基于国家精品在线开放课程遴选标准制作一门慕课
  9. Machine Learning:支持向量机通俗导论(理解SVM的三层境界)
  10. 《Nuitka打包实战指南》第一节 下载和环境配置