授予对对象和操作的访问权限 (Analysis Services)

允许非管理员用户在 Analysis Services 数据库中以一个或多个数据库角色成员身份访问多维数据集、维度和挖掘模型。 Analysis Services 管理员创建这些数据库角色,授予对 Analysis Services 对象的“读取”或“读/写”权限,然后向每个角色分配 Microsoft Windows 用户和组。

Analysis Services 通过将与用户或组所属的每个数据库角色关联的权限组合起来,以此确定特定 Windows 用户或组的有效权限。 因此,如果一个数据库角色没有授予用户或组对维度、度量值或属性的查看权限,但另一个数据库角色授予了该用户或组此项权限,则该用户或组将有权查看对象。

重要说明重要提示

Analysis Services 服务器管理员角色的成员和具有“完全控制”(管理员)权限的数据库角色成员可以访问数据库中的所有数据和元数据,并且查看特定对象无需额外权限。 而且,不能拒绝 Analysis Services 服务器角色的成员访问任何数据库中任何对象,也不能拒绝在数据库中具有“完全控制”(管理员)权限的 Analysis Services 数据库角色的成员访问该数据库中的任何对象。 通过拥有较少权限的独立用户可以授权进行专门的管理操作,例如处理。 有关详细信息,请参阅授予处理权限 (Analysis Services)

列出为数据库定义的角色。

管理员可在 SQL Server Management Studio 中运行简单的 DMV 查询,以获取在服务器上定义的所有角色的列表。

  1. 在 SSMS 中,右键单击一个数据库并选择“新建查询” | “MDX”。

  2. 键入以下查询,并按 F5 执行该查询:

    Select * from $SYSTEM.DBSCHEMA_CATALOGS
    

    结果包括数据库名称、说明、角色名称和上次修改日期。 将此信息用作起点,你可继续对单独的数据库进行操作,检查特定角色的成员身份和权限。

Analysis Services 权限自上而下的概述

本节涵盖配置权限的基本工作流。

步骤 1:服务器管理

第一步,确定具有服务器级管理员权限的对象。 安装期间,要求安装 SQL Server 的本地管理员指定一个或多个 Windows 帐户作为 Analysis Services 服务器管理员。 服务器管理员具有服务器上所有可能的权限,包括查看、修改、删除服务器上任何对象或查看关联数据等权限。 安装完成后,服务器管理员可以添加或删除帐户以更改此角色的成员身份。 有关此权限级别的详细信息,请参阅授予服务器管理员权限 (Analysis Services)

步骤 2:数据库管理

第二步,创建表格或多维解决方案后,将其作为数据库部署到服务器。 服务器管理员可以通过定义具有对所提及的数据库的“完全控制”权限的角色来委派数据库管理任务。 此角色的成员可以处理或查询数据库中的对象,以及创建用于访问多维数据集、维度和数据库中其他对象的其他角色。 有关详细信息,请参阅授予数据库权限 (Analysis Services)

步骤 3:启用多维数据集或模型访问,以查询和处理工作负荷

默认情况下,仅服务器和数据库管理员拥有对多维数据集或表格模型的访问权限。 将这些数据结构提供给组织中的其他人员要求具有将 Windows 用户和组帐户映射到多维数据集或模型的其他角色分配以及指定 Read 特权的权限。 有关详细信息,请参阅授予多维数据集或模型权限 (Analysis Services)

可将处理任务与其他管理功能隔离,允许服务器和数据库管理员将此任务委派给其他人员,或通过指定运行计划软件的服务帐户配置无人参与的处理。 有关详细信息,请参阅授予处理权限 (Analysis Services)

注意注意

用户不需要对基础关系数据库(Analysis Services 从该数据库加载其数据)中的关系表的任何权限,也不需要对运行 Analysis Services 实例的计算机的任何文件级别权限。

步骤 4(可选):允许或拒绝访问内部多维数据集对象

Analysis Services 提供了设置单个对象(包括数据模型中的维度成员和单元)权限的安全设置。 有关详细信息,请参阅授予对维度数据的自定义访问权限 (Analysis Services)授予对单元数据的自定义访问权限 (Analysis Services)

您还可以根据用户身份更改权限。 通常,这称为动态安全,可使用 UserName (MDX) 函数实现。

最佳做法

要更好地管理权限,建议采取类似于以下方法的方法:

  1. 按函数(例如,dbadmin、cubedeveloper、processadmin)创建角色,这样,维护这些角色的任何人都可以一眼看出角色所允许的权限。 正如其他地方所述,您可以在模型定义中定义角色,从而在后续解决方案的部署中保留这些角色。

  2. 在 Active Directory 中创建相应的 Windows 安全组,然后在 Active Directory 中维护此安全组,确保它包含适当的个人帐户。 这就使安全专家(已对组织中用于帐户维护的工具和流程非常熟悉)对安全组的成员身份负责。

  3. 在 SQL Server Management Studio 中生成脚本,这样,当将模型从其源文件部署到服务器时就可以快速复制角色分配。 有关如何快速生成脚本的详细信息,请参阅授予多维数据集或模型权限 (Analysis Services)

  4. 采用反映角色范围和成员身份的命名约定。 只有在设计和管理工具中才能看到角色名,因此请使用适合多维数据集安全专家的命名约定。 例如,processadmin-windowsgroup1 表示组织中人员的读取访问和处理权限,他们的个人 Windows 用户帐户是 windowsgroup1 安全组的成员。

    包含帐户信息有助于跟踪哪些帐户用于各种角色中。 由于角色可累加,因此与 windowsgroup1 关联的组合角色构成了为属于该安全组的人员设置的有效权限。

  5. 多维数据集开发人员需具有对开发中的模型和数据库的“完全控制”权限,但当数据库推广到生产服务器后,只需具有“读取”权限即可。 请务必为所有方案(包括开发、测试和生产部署)开发角色定义和分配。

使用与此类似的方法最大限度减少模型中角色定义和角色成员身份的用户改动,使角色分配可视化,从而轻松实现和维护多维数据集权限。

请参阅

任务

授予服务器管理员权限 (Analysis Services)

概念

角色和权限 (Analysis Services)

Analysis Services 支持的身份验证方法