我有这样的情况,我需要创建一个视图,供可能拥有由 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 权限显示。
对名称和 DoB 列没有选择权限
我正在寻找一种解决方案,其中查询成功运行并显示如上结果。
这在 SQL Server 中可能吗?
提前致谢。
创建两个角色,一种允许 PII 数据,另一种不允许。 将每个用户分配到一个角色或另一个角色。 不如写下你的看法
Select
ID,
Name,
CASE
WHEN IS_ROLEMEMBER ('pii_role') = 1 THEN DoB
ELSE 'PII Data'
END as DoB,
Country
FROM dim_customer