【发布时间】:2015-09-15 20:06:49
【问题描述】:
有一个事实表。该事实表由两种类型的用户查看。每个角色都可以访问不同的维度:角色 A 可以查看特定客户集 (c1, c2) 的值。角色 B 可以查看特定事务类型集 (t1, t2) 的值。实际上它是动态安全性,但这无关紧要,它对确定的集合同样有效。
用户 u1 属于两个角色,他的权限 u1(x,y) 所以...
Role A: x ∈ {c1, c2} AND y ∈ T
Role B: x ∈ C AND y ∈ {t1, t2}
因为 SSAS 安全性是附加的(角色 A 或角色 B),所以我看到了一切。
如果我使用
Role A: x ∈ {c1, c2} AND y ∉ T
Role B: x ∉ C AND y ∈ {t1, t2}
那我只看到了
x ∈ {c1, c2} AND y ∈ {t1, t2}
我想要
x ∈ {c1, c2} OR y ∈ {t1, t2}
最好不使用程序集和/或创建包含所有客户交易排列的维度。
是否可以仅使用角色(逻辑)来解决这个问题?
编辑:至少可以说,我的集合代数生锈了。我在工作中通常不使用数学(写下一些逻辑比加载数据要快得多),请随时纠正我的涂鸦。
【问题讨论】: