示例 6 - 使用 Exists 和 Except 函数来指定允许集和拒绝集
在此示例中,数据库角色具有如下表中所示的维度安全性设置。
Attribute |
IsAllowed |
AllowedSet |
DeniedSet |
ApplyDenied |
VisualTotals |
---|---|---|---|---|---|
州省市自治区 |
True |
|
EXCEPT (State..Members, {California}) |
False |
True |
市县 |
True |
EXISTS (City..Members, {California} + {Seattle}) |
|
False |
False |
性别 |
False |
|
|
True |
False |
以下为这些维度安全性设置的结果:
州省市自治区特性的拒绝集指定该数据库角色只能查看 California 成员。 州省市自治区特性的其他所有现有成员和新增成员将不可见。
即使州省市自治区特性有拒绝集,包括州省市自治区特性的成员的特性层次结构中的成员仍然可见。 其他特性层次结构中的成员仍然可见,这是因为州省市自治区和市县特性的 ApplyDenied 属性设置为 False。
Seattle 城市可见,因为它在市县特性的允许集中。
全部级别和州省市自治区特性的聚合合计值只包括可见成员的值,因为这两个属性的 VisualTotals 属性设置为 True。
查看结果集
根据该角色的这些维度安全性设置(并根据对所有单元的多维数据集的权限),在查询所有成员时将从多维数据集中返回以下结果集:
全部级别 |
州省市自治区 |
市县 |
性别 |
销售额 |
---|---|---|---|---|
All Offices |
|
|
|
17400 |
|
California |
|
|
12900 |
|
|
San Jose |
|
4200 |
|
|
San Francisco |
|
4400 |
|
|
Los Angeles |
|
4300 |
|
Washington |
|
|
4500 |
|
|
Seattle |
|
4500 |