权限和访问权限(Analysis Services - 多维数据)

在 Microsoft Analysis Services 中,管理员可以使用角色为不同的 Windows 用户和组定义 Analysis Services 数据库中对象的不同安全级别。对于每个角色而言,每个对象都拥有一个与其关联的单一权限,每个权限可以拥有一个或多个与其关联的访问权限。此外,Windows 用户或组可以与多个 Analysis Services 角色进行关联,使您能够针对商业智能应用程序中的复杂安全模式组合权限和访问权限。

访问权限

下表说明了与 Analysis Services 数据库中对象关联的权限可用的访问权限集。

访问权限

说明

Access

提供访问对象元数据的功能。支持下列访问类型:

  • None 拒绝访问对象。

  • Read 允许角色成员读取对象。

  • ReadContingent 仅当用户可以访问所有派生值的单元时才允许角色成员读取单元值。ReadContingent 为由该权限指定并且不是从其他单元派生的任何单元提供 Read 权限。

    例如,在 Profit 单元值通过 Sales 单元值减去 Costs 单元值计算的情况下,仅当对于 Sales 和 Costs 单元将单元访问权限设置为 Read(或 Write)时,用户才能读取 Profit 单元。

  • ReadWrite 允许角色成员读取对象和写入对象。

Administer

指示角色成员是否可以管理对象。

Administer 权限赋予角色成员访问对象中包含的所有对象的完全访问权限。

AllowBrowsing

允许角色成员浏览挖掘模型中的数据。

AllowDrillthrough

赋予角色成员从挖掘模型钻取到基础数据的权限。

AllowedSet

AllowedSet 权限定义角色成员可以查看的属性成员。例如,如果 [Customer].[CountryRegion] 中的允许集为 {Canada},则角色成员可以访问加拿大的所有省市自治区。

对于父子层次结构,允许的成员是指那些由该集定义的成员加上父子层次结构中与这些成员共存的祖先。如果父子层次结构的成员不属于允许集,则角色不能访问该成员的子级(而不是数据成员)。数据成员仍然可以访问,因为它们属于维度的键属性。

如果没有为 AllowedSet 权限定义任何集,则默认集为所有属性成员的集。

AllowPredict

挖掘模型的预测权限为角色成员赋予根据挖掘模型进行预测的权限。

ApplyDenied

确定是否不能查看该属性中与其他被显式拒绝的成员共存的成员。

DefaultMember

DefaultMember 权限定义维度的默认成员。默认成员影响在包含该维度的多维数据集上的查询所返回的数据集。当维度没有在轴上显示时,默认情况下会使用默认成员对数据集进行筛选(即切片)。

DeniedSet

DeniedSet 权限定义角色成员不能查看的属性成员。

IsAllowed

确定是否允许访问属性的任何成员,而不考虑基于该属性的级别设置。

如果对于维度的粒度特性,IsAllowed 属性为 False,则维度特性的设置 VisualTotals 会针对其所有成员生成空值。对于一元运算符,当 VisualTotals 为 False 时,每个成员都是其所有子级的汇总。如果将 VisualTotals 设置为 True,则每个成员都是允许的子级的汇总。

该属性设置的默认值为 True。

Process

对象的 Process 权限赋予角色成员处理对象的权限。除非对子对象显式拒绝该权限,否则,它还会授予处理对象内所有子对象的权限。Process 权限不会授予角色成员访问对象数据或元数据的权限。

ReadDefinition

指示角色成员是否可以读取定义权限对象的元数据。该属性设置由对象中包含的对象继承。

VisualTotals

维度数据的 VisualTotals 权限定义如何为属性聚合数据。这是一个返回 True 或 False 的 MDX 表达式。如果 VisualTotals 为 False,则对维度属性的所有成员聚合数据,而不考虑角色成员是否可以看到这些成员。如果 VisualTotals 为 True,则仅对维度粒度属性的那些可以由角色进行读访问的成员聚合数据。例如,如果 Customer Name 为粒度属性,并且针对 City 属性将 VisualTotals 设置为 True,则每个市县将是可以由角色进行读访问的客户的数据聚合。

默认设置为 False。

权限

下表说明了 Analysis Services 数据库中的可用权限,以及由每个权限管理的访问权限。

权限

访问权限

数据库

数据库访问权限定义了对 Analysis Services 数据库中对象和数据的访问权限。

可用的访问权限包括:

  • Administerr

  • Process

  • ReadDefinition

数据源

数据源访问权限定义了对 Analysis Services 数据库中数据源的访问权限。

可用的访问权限包括:

  • Access

    (None 或 Read)

  • ReadDefinition

多维数据集

多维数据集角色是当将数据库角色分配给一个多维数据集时在多维数据集级别上创建的,它仅适用于该多维数据集。多维数据集角色中的默认值是从同名的数据库角色中派生的,但这些默认值中的一部分可在多维数据集角色中用其他值覆盖。多维数据集角色包含数据库角色中没有的其他选项,例如单元安全性。

在对多维数据集各部分授予“读”和“读/写”访问权时均有很大的灵活性。您可以指定角色可以对哪些维度成员和多维数据集单元进行查看和更新。有关详细信息,请参阅维度安全性和单元安全性。

可用的访问权限包括:

  • Access

    (None、Read 或 ReadWrite)

  • LocalCube/DrillthroughAccess

    (None, Drillthrough/Drillthrough and Local Cube)

  • Process

单元

单元数据访问权限定义对多维数据集中单元的访问权限。有三种访问多维数据集中单元的权限:

  • Read

  • ReadContingent

  • Read/Write

多维数据集中的单元安全性使用 MDX 表达式(针对每个多维数据集单元解析为 True 或 False)为每种单元访问权限进行定义。数值表达式中的任意非零值都取值为 True,而零值取值为 False。当表达式解析为 True 时,允许访问;当表达式解析为 False 时,拒绝访问。

可用的访问权限包括:

  • Access

    (None、Read、ReadContingent 或 Read/Write)

维度

维度访问权限属性定义数据库中数据库维度的访问权限,而不考虑这些维度是否参与多维数据集。维度访问权限允许作为角色成员的用户在客户端应用程序中浏览维度。当在特殊的多维数据集中访问维度时,还可以将多维数据集维度权限指定为覆盖角色的数据库访问权限。

可用的访问权限包括:

  • Access

    (Read 或 Read/Write)

  • Process

  • ReadDefinition

属性

维度数据访问权限控制角色成员可以访问哪些维度属性。允许或拒绝对属性的访问权限定义对基于该属性的维度层次结构中的各级别的访问权限。如果拒绝角色访问某个属性,则也会拒绝该角色访问该属性派生的所有级别。

如果拒绝访问某个属性导致层次结构中出现一个漏洞,则整个层次结构便会失效,角色成员也无法再访问该层次结构。例如,在层次结构 CountryRegion-State-City-Name 中,“州省市自治区”级别和“名称”级别并不连续。拒绝访问“市县”属性会导致一个漏洞,并使该层次结构失效。相反,拒绝访问 CountryRegion 属性不会导致漏洞,并使层次结构 State-City-Name 有效,而且各级别保持连续。同样,拒绝访问“名称”属性也会使层次结构 CountryRegion-State-City 保持有效。

当您允许角色成员访问属性时,也可以允许或拒绝访问该属性的选定成员。

可用的访问权限包括:

  • AllowedSet

  • DefaultMember1

  • DeniedSet

  • VisualTotals

挖掘结构

挖掘结构访问权限确定对挖掘结构和挖掘模型及其数据的权限。

可用的访问权限包括:

  • Access

    (None 或 Read)

  • Process

  • ReadDefinition

挖掘模型

挖掘结构访问权限确定对挖掘结构和挖掘模型及其数据的权限。

可用的访问权限包括:

  • Access

    (None、Read 或 Read/Write)

  • Browse

  • Drill Through

  • ReadDefinition

1DefaultMember 访问权限定义维度的默认成员。有关详细信息,请参阅定义默认成员

权限和继承

当某个对象包含其他对象(例如,数据库中的多维数据集或维度)时,父对象的 Administer、Process 和 ReadDefinition 权限由子对象继承。

权限

继承

Administer

Analysis Services 服务器角色的成员拥有管理服务器的权限,因此,他们也对服务器中的所有对象拥有完全访问权限。被授予数据库管理权限的 Analysis Services 数据库角色成员对该数据库中的所有对象拥有完全访问权限。

Process

默认情况下,某个对象的 Process 设置应用于其任何子对象。也可以对子对象设置该属性以覆盖从父对象中继承的权限。

  • 如果允许用户处理多维数据集,但是不允许处理多维数据集中的维度,则用户仅当已处理完维度时才能成功处理多维数据集。

  • 当用户处理数据库时,只能处理数据库中允许用户处理的那些多维数据集和维度。

ReadDefinition

默认情况下,某个对象的 ReadDefinition 属性设置由其任何子对象继承。也可以对子对象设置该属性以覆盖从父对象中继承的权限。

多角色和权限

在 Analysis Services 数据库中,一个用户可属于多个角色。多个角色的权限可以累加。如果某个角色提供访问对象的权限,则无论该角色的成员是否被显式拒绝使用另一个角色访问该对象,它都可以访问该对象。