Moja otázka je, ako vytvoriť VPD v Oracle, SQL, že budú aj masku údajov

0

Otázka

Snažím sa vytvoriť VPD v Oracle pomocou SQL. Účelom tohto problému je, aby zamestnanec mohol LEN zobraziť záznamy pre zamestnancov v rovnakom oddelení a zároveň maskovanie ich partner je platy ako NULL.

Kód tabuľky používajú nasledovné

create table Employee
(
    ID number primary key,
    DEPT varchar2(25),
    SALARY number(8,2),
    NAME varchar2(25)
); 

Ja som si nie ste istí, čo je najlepší spôsob, ako ísť o tom to bude.... by to bolo vytvoriť balíček a používať aplikáciu kontexte. Verím, že stále tabuľky sa zobrazia iba tie, v istom "ODD" chápem, ale nie ste si istí ako maska údajov z tých, s rovnakým DEPT ale iné ID.

data-masking oracle sql vpd
2021-11-16 18:11:02
1

Najlepšiu odpoveď

0

Rodák RLS sa dostanete blízko, ale nie úplne, tam. Pomocou "sec_relevant_cols" vám možnosť medzi

  • len videl riadky, ktoré zodpovedajú vašim predikátu, ale všetky hodnoty sú prítomné
  • videl všetky riadky, ale maskovanie hodnoty, ktoré nezodpovedajú svoje predikát

keďže (ak som čítate správne), ktoré chcete vidieť len predikát zodpovedajúce riadky A maska sa niektoré hodnoty ako dobre.

By ste mohli dosiahnuť to s dvojstupňovou metódou

  1. Vaše kontexte obsahuje dve tlačidlá (povedzme) DEPT a YOUR_ID

  2. Na RLS politiky je "kde odd = sys_context(ctx,'ODD')"

  3. Máte zobrazenie EMP, do ktorej sa táto politika sa aplikuje, je

     select 
       id, 
       dept, 
       name,
       case when id = sys_context(ctx,'YOUR_ID') then sal else null end sal
     from EMP_TABLE
    
2021-11-17 05:57:22

Dám mu šancu! Bol som pomocou kontexte, ktorý mi umožnil získať DEPT hodnoty od toho, kto je prihlásený! Bol som nevedeli by som mohol využiť to, aby získali ešte jeden rovnako... je to možné k tomu, že všetky v rovnakom obale?
Venzie

Áno, kontext je viazané na balík, nie na kľúče/hodnotám v kontextu. Kontexte môžu mať mnoho kľúče a hodnoty. "USERENV" je klasickým príkladom, že
Connor McDonald

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................