<s id="mvh2b"><strike id="mvh2b"><u id="mvh2b"></u></strike></s>
    1. <rp id="mvh2b"></rp>

      当前位置:首页 > IT教程

      关于数据库审计功能

      时间:2021-08-07 20:53:10来源:金橙教程网 作者:admin8 阅读:86次 [手机版]
       

      数据库审计

      源自:http://blog.CSDN.net/annicybc/article/details/1568115

      一、何谓数据库审计?

      数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,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官方参考手册。

      相关阅读

      网易云抱抱功能在哪?

      最近,因为网抑云这个梗非常火,所以网易云音乐在新版本的APP中上线了&ldquo;抱抱&rdquo;这个功能,很多人不知道抱抱功能在哪?如何触发

      百度地图使用全景功能查看实景地图教程

      先在浏览器的地址栏中输入百度地图网址:map.baidu.com 并打开,如图所示这里以无锡市望湖门为例,在地图搜索框中输入&ldquo;无锡市望

      微信小程序实现城市搜索功能(付源码)

      文章目录 效果图功能简介项目结构代码citysearch.wxmlcit

      按QQ查询QQ群数据库的方法

      1.为所有的表创建索引 ADD INDEX &#96;QunNum_index&

      Telnet是什么意思又是什么协议 Telnet有什么作用及功

      Telnet一词相信很多电脑爱好者朋友都比较陌生,因为普通电脑用户很少会接触到Telnet相关的东西,但在一些专业的服务器场所或者一些特

      分享到:

      IT相关

      程序相关

      推荐文章

      热门文章

      东北老女人嫖老头视频_无遮挡H肉动漫视频在线观看_欧美牲交a欧美牲交aⅴ另类_狼人乱码无限2021芒果