بلاگ IRAN OUG


به وبلاگ IRAN OUG (گروه کاربران اوراکل ایران) خوش آمدید.


تازه ترین مطالب کارشناسان این صنعت را بررسی کنید. برای مشاهده مطلب مورد نظر می توانید جستجو کنید.

آیا می خواهید مطالب خود را در اینجا مشاهده کنید؟ مطالب خود را بفرستید ثبت مطالب من

مطالب کاربران

Security - VPD COLUMN MASKINGدوشنبه , 27 آذر 1396 - حامد اسماعیلی-
موضوع: Database

 گرفتن دسترسی مشاهده دیتای چند ستون برای برخی از کاربران VPD COLUMN MASKING

صورت مسئله :

بدلیل حساس بودن دیتای موجود در یک ستون خاص ، میخواهیم کاری کنیم که در صورتی که تنها کاربران دارای مجوز مشاهده آن ستون به دیتابیس لاگین نمودند توانایی دیدن محتوای ستون مورد نظر را داشته باشند .

مراحل کار :

1- ایجاد یک تابع جهت تعریف کاربران مجاز

create or replace function VPD( p_owner in varchar2, p_name in varchar2 ) return varchar2
    as
    begin
            if sys_context( 'userenv', 'session_user' ) in( 'user1','user2') --and SYS_CONTEXT('USERENV','HOST')in('DOMAIN\TESTPC','hamed')
            and sys_context('userenv','ip_address') in ('192.168.1.10','192.168.1.20')
            then
                    return NULL;
            else
                   return '1=0';
            end if;
   end;
   /

2- ایجاد یک POLICY به شکل زیر

 BEGIN
         DBMS_RLS.ADD_POLICY(object_schema=>'scott',
                             object_name=>'test1',
                             policy_name=>'english_name_col',
                             function_schema=>'scott',
                             policy_function=>'VPD',
                             sec_relevant_cols=>'ENGLISH_NAME,DESCRIPTION',
                             sec_relevant_cols_opt=>dbms_rls.ALL_ROWS);
                           
    END;   /

با زدن SELECT زیر فقط کاربرانی میتوانند دیتای دو ستون فوق را مشاهده کنند که در تابع VPD اسامی آنها ذکر شده باشد

SELECT * FROM TEST1;  

برچسب: DB
1 - 1