بازرسی کردن یک فیلد از جدول

 

Audit‌ (بازرسی کردن) یک فیلد از جدول اوراکل

اگر بخواهید که  log تغییرات دستوری بر روی یک فیلد از جدول در دیتابیس Oracle را داشته باشید می توانیم با کمک FGA بصورت زیر عمل می کنید که با مثال آنرا بیان می کنم


1)
create table test_fga
(
id number primary key,
value number,
name varchar2(100)
);
insert into test_fga values ( 1, 1000, 'saeed');
insert into test_fga values ( 2, 2000 , 'armin');
commit;
2)
BEGIN
DBMS_FGA.add_policy(
object_schema => 'TEST',
object_name => 'TEST_FGA',
policy_name => 'FGA_TEST_CHECK_VALUE',
audit_column => 'VALUE',
statement_types => 'UPDATE');
END;
/
3)
update test_fga set name = 'ali'
where id= 1
4)
select session_id,timestamp,db_user,sql_text from dba_fga_audit_trail;

در این حالت هيچ ركوردي در دیتابیس اوراکل بازيابي نمي شود زیرا FGA بر روی ستون VALUE تنظیم شده است.

 


5)
update test_fga set value = 1500
where id= 1

6)
select session_id,timestamp,db_user,sql_text from dba_fga_audit_trail;
Result:
update test_fga set value = 1500
where id= 1

7)
update test_fga set value = 1500, name = 'ali'
where id= 1

8)
select session_id,timestamp,db_user,sql_text from dba_fga_audit_trail;
Result:
update test_fga set value = 1500, name = 'ali'
where id= 1

حال می توانیم تغییرات دستور بروزرسانی شده بر روی ستون VALUE را مشاهده کنیم.
Rate this post

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

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

این قسمت نباید خالی باشد
این قسمت نباید خالی باشد
لطفاً یک نشانی ایمیل معتبر بنویسید.

keyboard_arrow_up
Oracle APEX Capabilities (OAC)