Auditing در سطح ستون – اوراکل 23c

Unified Auditing در نسخه 23c به صورت پیش فرض فعال است و در این نسخه به آن قابلیتهای جدیدی هم اضافه شده است. یکی از این قابلیتها، امکان Auditing در سطح Column است با کمک این فیچر می توانیم صرفا ستون(یا ستونهای) به خصوصی از یک Table یا View را Audit کنیم.

برای مثال قصد داریم هر selectای بر روی ستون mobile را Audit کنیم، برای این کار Audit Policy زیر را ایجاد می کنیم:

SQL> CREATE AUDIT POLICY Col_pol_Mobile ACTIONS select(mobile) ON usef.person;
Audit policy created.

Policy ایجاد شده را فعال می کنیم:

SQL> AUDIT POLICY Col_Pol_Mobile;
Audit succeeded.

با تنظیم این Policy، هر گونه تلاش برای مشاهده اطلاعات ستون mobile ثبت خواهد شد:

SQL> show user
USER is "JAMSHID"
SQL> select mobile from usef.person where name='Nader' and last_name='DastNeshan';
    MOBILE
----------
9146581254
SQL> select dbusername,action_name,object_schema,object_name from unified_audit_trail where unified_audit_policies like '%COL_POL_MOBILE%';
DBUSERNAME      ACTION_NAM OBJECT_SCHEMA   OBJECT_NAME
--------------- ---------- --------------- ------------
JAMSHID         SELECT     USEF            PERSON

اگر کاربر JAMSHID بخواهد اطلاعات ستون دیگری از این جدول را ببیند(به غیر از شماره موبایل)، Audit نخواهد شد:

SQL> show user
USER is "JAMSHID"
SQL>  select id from usef.person where name='Nader' and last_name='DastNeshan';
        ID
----------
         3
SQL> select count(*) from unified_audit_trail where unified_audit_policies like '%COL_POL_MOBILE%';
  COUNT(*)
----------
         1

در ادامه تغییراتی را اعمال می کنیم تا این Policy در کنار ستون Mobile، ستون ID را هم Audit کند، برای این کار دستور زیر را اجرا می کنیم:

SQL> ALTER AUDIT POLICY Col_Pol_Mobile ADD ACTIONS select(ID) ON usef.person;
Audit policy altered.
SQL> select audit_option,object_schema,object_name,object_type,column_name from audit_unified_policies where policy_name like '%COL_POL_MOBILE%';
AUDIT_OPTION OBJECT_SCHEMA OBJECT_NAME  OBJECT_TYP COLUMN_NAME
------------ ------------- ------------ ---------- ---------------
SELECT       USEF          PERSON       TABLE      MOBILE
SELECT       USEF          PERSON       TABLE      ID

البته در زمان ساخت Audit Policy هم این امکان وجود داشت:

SQL> CREATE AUDIT POLICY Col_pol_Mobile2 ACTIONS select(mobile,ID) ON usef.person;
Audit policy created.

در کنار جدول، ستونهای view را هم می توان audit کرد:

SQL> select audit_option,object_schema,object_name,object_type,column_name from audit_unified_policies where policy_name like '%COL_POL_VW_MOBILE_ID%';
AUDIT_OPTION OBJECT_SCHEMA OBJECT_NAME  OBJECT_TYP COLUMN_NAME
------------ ------------- ------------ ---------- ---------------
SELECT       USEF          VW_PERSON    VIEW       MOBILE
SELECT       USEF          VW_PERSON    VIEW       ID

 

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:vahidusefzadeh@gmail.com

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *