Ma question est de savoir comment créer un SPV dans Oracle avec SQL qui sera également le masque de données

0

La question

Je suis en train de créer un SPV dans Oracle à l'aide de SQL. Le but de ce problème est donc un employé peut afficher UNIQUEMENT les enregistrements pour les employés dans le même département, tout en masquant leur collègue de travail, les salaires comme NULL.

Le code de la table utilisée est la suivante

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

Je ne suis pas certain que la meilleure façon de faire, ce serait.... serait-il pour créer un package et d'utiliser un contexte d'application. Je crois que l'obtention de la table pour n'afficher que ceux dans les mêmes "DEPT" je comprends, mais pas comment masquer les données de ceux avec le même DÉPARTEMENT, mais différent de l'ID.

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

La meilleure réponse

0

Natif du SJSR, vous obtiendrez de près, mais pas totalement là. À l'aide de "sec_relevant_cols" vous donnera le choix entre

  • voir seulement les lignes qui correspondent à vos prédicat, mais toutes les valeurs sont présents
  • voir toutes les lignes, mais masquage des valeurs qui ne correspondent pas à vos prédicat

alors que (si je suis en train de lire correctement) que vous souhaitez voir uniquement prédicat lignes correspondantes ET masque de certaines valeurs.

Vous pourriez réaliser avec une méthode en deux étapes

  1. Votre contexte contient deux clés (dire) DEPT et VOTRE_ID

  2. Le RLS de la politique est "where dept = sys_context(ctx,'DEPT')"

  3. Vous avez une vue EMP à laquelle cette stratégie est appliquée, étant

     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

Je vais vous donner un coup de feu! J'ai été en utilisant un contexte qui m'a permis d'obtenir le DEPT de la valeur de celui qui est connecté! Je ne savais pas que je pouvais l'utiliser pour gagner un autre... est-il possible de faire que tous dans le même paquet?
Venzie

Oui, le contexte est lié à l'emballage, pas les clés/valeurs dans le contexte. Un contexte peut avoir beaucoup de clés/valeurs. "USERENV" est un exemple classique de cette
Connor McDonald

Dans d'autres langues

Cette page est dans d'autres langues

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