قابلیت unified auditing در اوراکل نسخه 21c، عملیات auditing را برای همه editionهای یک object امکان پذیر می سازد و حتی اگر در آینده edition جدیدی ایجاد شود، auditing در سطح edition جدید هم اعمال خواهد شد. برای مثال، ویوی vw_IRIR را در دو edition مختلف ایجاد می کنیم:
SQL> alter session set edition=IR_EDITION1; Session altered SQL> CREATE EDITIONING VIEW vw_IRIR AS select * from usef.tbl1; View created SQL> alter session set edition=IR_EDITION2; Session altered SQL> CREATE OR REPLACE EDITIONING VIEW vw_IRIR AS select owner from usef.tbl1; View created SQL> select object_name, edition_name from user_objects_ae where object_name='VW_IRIR'; OBJECT_NAM EDITION_NAME ---------- -------------- VW_IRIR IR_EDITION1 VW_IRIR IR_EDITION2
با ساخت audit policy زیر، اگر به ویوی vw_IRIR در هر کدام از editionها رجوع شود، auditing انجام می شود:
SQL> alter session set edition=IR_EDITION1; Session altered SQL> create audit policy audit_editions_1 actions select on usef.VW_IRIR; Done SQL> audit policy audit_editions_1; Audit succeeded
برای تست، پرس و جوی زیر را اجرا می کنیم:
SQL> alter session set edition=IR_EDITION1; Session altered SQL> select count(*) from usef.VW_IRIR; COUNT(*) ---------- 377160 SQL> select a.ACTION_NAME,a.OBJECT_NAME,a.OBJECT_EDITION from UNIFIED_AUDIT_TRAIL a where OBJECT_NAME='VW_IRIR'; ACTION_NAM OBJECT_NAM OBJECT_EDITION ---------- ---------- -------------- SELECT VW_IRIR IR_EDITION1
تکرار پرس و جو در edition دیگر هم audit می شود:
SQL> alter session set edition=IR_EDITION2; Session altered SQL> select count(*) from usef.VW_IRIR; COUNT(*) ---------- 377160 SQL> select a.ACTION_NAME,a.OBJECT_NAME,a.OBJECT_EDITION from UNIFIED_AUDIT_TRAIL a where OBJECT_NAME='VW_IRIR'; ACTION_NAM OBJECT_NAM OBJECT_EDITION ---------- ---------- -------------- SELECT VW_IRIR IR_EDITION1 SELECT VW_IRIR IR_EDITION2
auditing در edition جدید هم برای ویوی VW_IRIR انجام خواهد شد:
SQL> create edition IR_EDITION3; Done SQL> alter session set edition=IR_EDITION3; Session altered SQL> CREATE OR REPLACE EDITIONING VIEW vw_IRIR AS select object_id from usef.tbl1; View created SQL> select count(*) from vw_IRIR; COUNT(*) ---------- 377160
SQL> select a.ACTION_NAME,a.OBJECT_NAME,a.OBJECT_EDITION from UNIFIED_AUDIT_TRAIL a where OBJECT_NAME='VW_IRIR'; ACTION_NAM OBJECT_NAM OBJECT_EDITION ---------- ---------- -------------- SELECT VW_IRIR IR_EDITION1 SELECT VW_IRIR IR_EDITION2 SELECT VW_IRIR IR_EDITION3