Heim > Datenbank > MySQL-Tutorial > 真实案例:Oracle数据库中表插入操作的审计

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 17:15:05
Original
1136 Leute haben es durchsucht

在Oracle 10g中某个用户下表OBJECT_ID_FACTORY 的记录再次出现重复。这是一张字典表,用于生成某些表的记录主键值。重复的键值导

在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;

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

linux

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage