我的问题是如何创造一个温哥华警察局在Oracle SQL,也将掩蔽数据

0

的问题

我试图创造一个温哥华警察局在Oracle使用SQL发言。 目这个问题是使一个雇员只能查看记录对员工在同一个部门,同时掩盖他们的同事的薪金作为空。

代码表的正在使用如下

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

我不确定什么是最好的方式去这样做。 它将创建一个包装和使用的应用程序的上下文。 我相信越来越表只显示那些在相同的"部门"我理解但不确定怎么掩盖数据的那些相同的部门,但是不同的身份证。

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

最好的答案

0

地RLS会让你接近但不完全。 使用"sec_relevant_cols"会给你之间的选择

  • 只看到的行匹配你的判断,但是,所有价值观是本
  • 看到所有行,但掩盖值,不匹配你谓

而(如果我读数正确地)你想要看到的只谓词匹配的行和掩盖了一些值。

你可以实现这种两步骤的方法

  1. 你的上下文含有两个关键(说)部和YOUR_ID

  2. RLS政策是"在dept=sys_context(ctx、'部')"

  3. 你有看EMP到这一政策是适用的,正在

     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

我会给它一个镜头! 我用的是一个背景下,允许我来,得到科值从谁是记录! 我不知道我可以用它来获得一个又一个,以及...这是可以做到的,所有在同一包吗?
Venzie

是的,上下文中是必要的软件包,不钥匙/价值的上下文中。 一个上下文中可以有许多键/价值观。 "USERENV"是一个典型的例子,
Connor McDonald

其他语言

此页面有其他语言版本

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