مسعود سلطانی راد
مسعود سلطانی راد
خواندن ۳ دقیقه·۲ ماه پیش

بهبود قابلیت‌های Auditing در Oracle Database 23ai


در این پست به بررسی برخی از بهبودهای Auditing در Oracle Database 23ai می‌پردازیم.

توقف پشتیبانی از Traditional Auditing

Auditing سنتی (Traditional Auditing) در Oracle 21c از رده خارج شد و در Oracle 23ai دیگر پشتیبانی نمی‌شود. توصیه می‌شود که از Unified Auditing استفاده کنید.

Audit کردن ستون‌های جداگانه برای جداول و ویوها

در Oracle 23ai، می‌توانید بر روی ستون‌های جداگانه جداول و ویوها سیاست‌های Auditing ایجاد کنید. این قابلیت به شما اجازه می‌دهد تا محتوای audit trail را کاهش دهید و تنها اعمالی که روی ستون‌های مورد نظر انجام می‌شوند را ثبت کنید. برای یک ستون در جدول یا ویو می‌توانید عملیات زیر را Audit کنید:

  • ALL
  • ALTER
  • AUDIT
  • COMMENT
  • DELETE
  • GRANT
  • INDEX
  • INSERT
  • SELECT
  • UPDATE

در ادامه مثالی از نحوه پیاده‌سازی این قابلیت آورده شده است.

ایجاد جدول تست

conn testuser1/testuser1@//localhost:1521/freepdb1

drop table if exists audit_test_tab purge;

create table audit_test_tab (

id  number generated always as identity,

col1 varchar2(10),

col2 varchar2(10),

col3 varchar2(10)

);

insert into audit_test_tab (col1, col2) values (‘apple’, ‘banana’);

commit;

تعریف سیاست‌های Audit

سیاست جدیدی برای Audit کردن عملیات UPDATE روی ستون‌های COL1 و COL2 و SELECT روی COL2 ایجاد می‌کنیم. توجه کنید که لیستی از ستون‌ها برای عملیات Auditing به صورت کاما جدا شده ارائه می‌شود.

conn sys/SysPassword1@//localhost:1521/freepdb1 as sysdba

noaudit policy test_audit_policy;

drop audit policy test_audit_policy;

create audit policy test_audit_policy

actions update(col1, col2) on testuser1.audit_test_tab,

select(col2) on testuser1.audit_test_tab

container = current;

audit policy test_audit_policy;

بررسی trail‌های Audit

در این مرحله، trail‌های Audit برای عملیات انجام شده بر روی جدول را بررسی می‌کنیم.

column event_timestamp format a30

column dbusername format a10

column action_name format a20

column object_schema format a10

column object_name format a20

column sql_text format a40

select event_timestamp,

dbusername,

action_name,

object_schema,

object_name,

sql_text

from   unified_audit_trail

where  object_name = ‘AUDIT_TEST_TAB’

order BY event_timestamp;

نتیجه: هیچ ردی از Auditing در حال حاضر وجود ندارد.

انجام برخی عملیات

در ادامه برخی از عملیات بر روی جدول تست انجام می‌دهیم. بخشی از این عملیات‌ها قابل Auditing هستند.

conn testuser1/testuser1@//localhost:1521/freepdb1

— Not audited.

insert into audit_test_tab (col1, col2) values (‘apple2’, ‘banana2’);

update audit_test_tab

set    col3 = ‘pear’

where  col3 is null;

commit;

select id from audit_test_tab;

ID

———-

۱

۲

SQL>

۱


عملیات قابل Auditing

عملیات زیر قابل Auditing هستند:

update audit_test_tab

set    col1 = ‘apple1’

where  col1 = ‘apple’;

update audit_test_tab

set    col2 = ‘banana1’

where  col2 = ‘banana’;

select col2 from audit_test_tab;

COL2

———-

banana1

banana2

بررسی مجدد trail‌های Audit

conn sys/SysPassword1@//localhost:1521/freepdb1 as sysdba

column event_timestamp format a30

column dbusername format a10

column action_name format a20

column object_schema format a10

column object_name format a20

column sql_text format a40

select event_timestamp,

dbusername,

action_name,

object_schema,

object_name,

sql_text

from   unified_audit_trail

where  object_name = ‘AUDIT_TEST_TAB’

order BY event_timestamp;

EVENT_TIMESTAMP                DBUSERNAME ACTION_NAME          OBJECT_SCH OBJECT_NAME          SQL_TEXT

—————————— ———- ——————– ———- ——————– —————————————-

۱۴-JUN-23 19.31.17.231940 PM TESTUSER1 UPDATE TESTUSER1 AUDIT_TEST_TAB update audit_test_tab

set    col1 = ‘apple1’

where  col1 = ‘apple’

۱۴-JUN-23 19.31.17.248862 PM TESTUSER1 UPDATE TESTUSER1 AUDIT_TEST_TAB update audit_test_tab

set    col2 = ‘banana1’

where  col2 = ‘banana’

۱۴-JUN-23 19.31.17.252646 PM TESTUSER1 SELECT TESTUSER1 AUDIT_TEST_TAB select col2 from audit_test_tab

SQL>

نتایج بررسی

فقط عملیات مربوط به ستون‌های COL1 و COL2 Audit شده‌اند. کوئری مربوط به ستون ID و بروزرسانی ستون COL3 ثبت نشده‌اند. این ویژگی به شما امکان می‌دهد که حجم داده‌های Audit شده را کاهش داده و تنها عملیات‌های مورد نیاز را ثبت کنید.

منبع مستند

oracle databaseآموزش oracleخدمات اوراکلمشاوره اوراکلمسعود سلطانی راد
چند سالی هست در حوزه داده ها ( نگهداری و تحلیل آنها) فعالیت دارم و همیشه سعی کردم آموخته هایم رو به اشتراک بگذارم soltanirad@artarad.ir www.artarad.ir
شاید از این پست‌ها خوشتان بیاید