授权访问对象和操作(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 支持的身份验证方法