示例 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