当前位置:  数据库>oracle

真实案例:Oracle数据库中表插入操作的审计

    来源: 互联网  发布时间:2017-04-29

    本文导语: 在Oracle 10g中某个用户下表OBJECT_ID_FACTORY 的记录再次出现重复。这是一张字典表,用于生成某些表的记录主键值。重复的键值导致了某些业务操作不能正常进行。 该问题以前出现过一次。通过logminer 也没能找到操作的应用,因此...

在Oracle 10g中某个用户下表OBJECT_ID_FACTORY 的记录再次出现重复。这是一张字典表,用于生成某些表的记录主键值。重复的键值导致了某些业务操作不能正常进行。

该问题以前出现过一次。通过logminer 也没能找到操作的应用,因此我们采用audit 技术来处理这个问题。

logminer的使用方法请见此文。链接: 或

1.  解决过程

在Oracle 10g 数据库中,此表的记录出现异常,无故增加了某条记录。我们使用logminer 无法查出是什么应用程序所为。因此,我们启用审计功能来捕捉错误的操作来解决这个问题。

Oracle 的审计功能是一个高级选项,默认是不开放的,需要修改审计类初始化参数来能使用。

第一步,检查审计类参数

SQL> show parameter audit

NAME                                  TYPE         VALUE

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

audit_file_dest                       string       /u01/app/oracle/admin/zxdb/adu

                                                  mp

audit_sys_operations                  boolean      TRUE

audit_syslog_level                    string

audit_trail                           string       DB

如果audit_trail 是空,则需要修改并重启实例使之生效后才能继续进行对象的审计操作。

调整审计结果的存储表aud$ 的表空间。原来是system 表空间,所以需要迁移到另外的表空间上,防止system 表空间暴涨不好收场。

SQL> alter table sys.aud$ move tablespace users;

第二步,设置对象操作的审计

审计linuxidc 用户下表OBJECT_ID_FACTORY 每一次访问的插入操作,不管成功或失败,都记录下来;

审计 linuxidc 用户下表OBJECT_ID_FACTORY 每一个会话的更新操作,不管成功或失败,都记录下来;

audit insert on linuxidc .OBJECT_ID_FACTORY by access;

audit update on linuxidc .OBJECT_ID_FACTORY; --by session    [ WHENEVER [ NOT ] SUCCESSFUL ]  都可以省略掉。

第三步,检查哪些对象、哪些操作、哪些权限设置了审计

Select * from dba_stmt_audit_opts;

Select * from dba_priv_audit_opts;

Select * from dba_obj_audit_opts;

如这里 linuxidc 用户下表OBJECT_ID_FACTORY 设置了insert 和update 的操作的审计

SQL> Select * from dba_obj_audit_opts;

OWNER                           OBJECT_NAME                     OBJECT_TYPE        ALT    AUD    COM    DEL    GRA    IND    INS    LOC    REN    SEL    UPD    REF EXE  

CRE    REA    WRI    FBK

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

linuxidc                            OBJECT_ID_FACTORY               TABLE              -/-    -/-    -/-    -/-    -/-    -/-    A/A    -/-    -/-    -/-    S/S    -/- -/-  

-/-    -/-    -/-    -/-

第四步,使用noaudit 取消对象操作的审计

noaudit insert on linuxidc .OBJECT_ID_FACTORY by access;

noaudit update on linuxidc .OBJECT_ID_FACTORY;

如果审计目标已经实现,需要及时关闭审计设置。这点很重要,需在实现过程中予以注意。


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Mysql大表查询优化技巧总结及案例分析
  • 浅析基于Oracle案例知识库设计
  • oracle使用sql脚本生成csv文件案例学习
  • 软件需求分析案例文档
  • 高分请教http://java.isavvix.com/ JSP成功案例,成功后有更多分相送。
  • jquery ajax 局部刷新小案例
  • Oracle案例:分析10053跟踪文件
  • 这个案例有错误望赐教!太过简单了简直是送分!
  • Linux下Oracle常见安装错误总结及参考案例
  • 求linux文件服务器解决方案案例
  • Oracle PL/SQL入门案例实践
  • 在网关中使用Nginx配置HTTP透明代理案例
  • 100分:请各位前辈列举JAVA应用的典型案例.谢谢!
  • oracle—SQL技巧之(一)连续记录查询sql案例测试
  • 服务器安全狗导致ASP.NET网站运行出错的一个案例
  • Android 游戏引擎libgdx 资源加载进度百分比显示案例分析
  • Android拨号盘 支持T9搜索和号码搜索等拨号盘案例
  • jquery ajax 局部无刷新更新数据的实现案例
  • Android CheckBox 的使用案例分析
  • android开机自启动原理与实现案例(附源码)
  • PHP中使用sleep造成mysql读取失败的案例和解决方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,