La mia domanda è: come creare un VPD in Oracle SQL che anche mascherare i dati

0

Domanda

Sto cercando di creare un VPD in Oracle utilizzando SQL. Lo scopo di questo problema è così che un dipendente potrebbe visualizzare SOLO i record per i dipendenti del dipartimento stesso mascherando il loro collega stipendi NULL.

Il codice per la tabella che viene usato è il seguente

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

Non sono sicuro di quale sia il modo migliore per farlo sarebbe.... sarebbe creare un pacchetto e l'utilizzo di un contesto di applicazione. Credo che ottenere la tabella per visualizzare solo quelle stesse "REP" ho capito, ma non si è sicuri come maschera i dati di coloro che con la stessa altezza, ma ID diverso.

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

Migliore risposta

0

Nativo RLS avvicina, ma non del tutto lì. L'utilizzo di "sec_relevant_cols" vi darà la possibilità di scegliere tra

  • a vedere solo le righe che soddisfano il predicato, ma tutti i valori sono presenti
  • visualizzare tutte le righe, ma mascheramento valori che non soddisfano il predicato

considerando che (se ho letto bene) che si desidera vedere solo predicato righe corrispondenti E maschera di alcuni valori.

Si potrebbe ottenere con un metodo in due fasi

  1. Il contesto contiene due chiavi (dire) DIP e YOUR_ID

  2. Il RLS politica è "where dipartimento = sys_context(ctx,'REP')"

  3. Si ha una vista EMP a cui tale criterio viene applicato, in fase di

     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

Darò un colpo! Stavo usando un contesto che mi ha permesso di ottenere il REPARTO di valore da chi non è registrato! Ero ignaro potrei usarlo per ottenere un altro uno così... è possibile fare tutto all'interno dello stesso pacchetto?
Venzie

Sì, il contesto è legato al pacchetto, non le chiavi/valori all'interno del contesto. Un contesto che può avere molte chiavi/valori. "USERENV" è un classico esempio di che
Connor McDonald

In altre lingue

Questa pagina è in altre lingue

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