PII 和非 PII 最终用户的 SQL Server 视图

问题描述 投票:0回答:1

我有这样的情况,我需要创建一个视图,供可能拥有由 AD 组控制的 PII 和非 PII 权限许可的最终用户使用。

假设我有

dim_customer
,其中包含四列
ID
Name
DoB
Country
。当 PII 用户运行时:

Select ID, Name, DoB, Country FROM dim_customer

PII 用户应获得:

ID  NAME  DoB         Country
1   John  1999-10-10  US

如果非 PII 用户运行相同的查询,那么他们应该得到:

ID  NAME     DoB         Country
1   PII DATA PII DATA    US

因此使用基本相同的视图对象,但数据根据 PII 权限显示。

  1. 我不想创建两个带有 PII 和 NON-PII 后缀的视图。
  2. 我尝试了列级权限,但这意味着当最终用户尝试上述查询时,他们会收到以下错误:

对名称和 DoB 列没有选择权限

  1. 我尝试过数据屏蔽,但显示“XXXX”,我更喜欢“PII” 数据”。

我正在寻找一种解决方案,其中查询成功运行并显示如上结果。

这在 SQL Server 中可能吗?

提前致谢。

sql-server sql-view dml data-masking pii
1个回答
0
投票

创建两个角色,一种允许 PII 数据,另一种不允许。 将每个用户分配到一个角色或另一个角色。 不如写下你的看法

Select 
    ID, 
    Name, 
    CASE 
       WHEN IS_ROLEMEMBER ('pii_role') = 1 THEN DoB
       ELSE 'PII Data' 
    END as DoB, 
    Country 
FROM dim_customer
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.