Welcome 微信登录

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

在Oracle 10g中某个用户下表OBJECT_ID_FACTORY 的记录再次出现重复。这是一张字典表,用于生成某些表的记录主键值。重复的键值导致了某些业务操作不能正常进行。该问题以前出现过一次。通过logminer 也没能找到操作的应用,因此我们采用audit 技术来处理这个问题。logminer的使用方法请见此文。链接:http://www.linuxidc.com/Linux/2012-06/63489.htm 或 http://www.linuxidc.com/Linux/2012-03/55735.htm1.  解决过程 在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; 如果审计目标已经实现,需要及时关闭审计设置。这点很重要,需在实现过程中予以注意。
  • 1
  • 2
  • 下一页
Oracle用户只有访问其他用户视图的权限Oracle logminer 使用简介相关资讯      Oracle入门教程 
  • 使用SQLT来构建Oracle测试用例  (08/28/2014 06:17:41)
  • Oracle AUTOTRACE 统计信息  (02/18/2013 08:25:40)
  • Linux Oracle服务启动&停止脚本与  (12/16/2012 14:42:37)
  • Oracle入门教程:把表和索引放在不  (07/13/2013 11:21:40)
  • Oracle直接路径加载--append的深度  (02/07/2013 08:26:36)
  • Oracle Connect By用法  (12/16/2012 13:36:10)
本文评论 查看全部评论 (0)
表情: 姓名: 字数