多维数据集或表格模型是 Analysis Services 数据模型中的主要查询对象。 从 Excel 连接到多维或表格数据进行临时数据浏览时,用户通常首先选择特定的多维数据集或表格模型作为数据透视报表对象背后的数据结构。 本主题介绍如何授予多维数据集或表格数据访问所需的权限。
默认情况下,除了服务器管理员或数据库管理员之外,没有人有权查询数据库中的多维数据集。 非管理员要访问多维数据集,需要成为为包含该多维数据集的数据库创建的角色的成员。 在 Active Directory 或本地计算机上定义的 Windows 用户或组帐户可以获得成员身份支持。 在开始之前,请确定将在要创建的角色中为哪些帐户分配成员身份。
有Read访问多维数据集的权限,也意味着对其中的维度、度量组和视角的权限。 大多数管理员将在多维数据集级别授予读取权限,然后限制对特定对象、关联数据或用户标识的权限。
为了在连续的解决方案部署中保留角色定义,最佳做法是在 SQL Server Data Tools 中将角色定义为模型的组成部分,然后在发布数据库后在 SQL Server Management Studio 中分配角色成员身份。 但是,可以将任一工具用于这两个任务。 为了简化本练习,我们将使用 SQL Server Management Studio 来定义角色和成员身份。
注释
只有具有完全控制权限的服务器管理员或数据库管理员才能将多维数据集从源文件部署到服务器,或创建角色并分配成员。 有关这些权限级别的详细信息,请参阅“授予服务器管理员权限”(Analysis Services)和“授予数据库权限”(Analysis Services)。
步骤 1:创建角色
在 SSMS 中,连接到 Analysis Services。 请参阅从客户端应用程序(Analysis Services)进行连接,以获得此步骤的帮助。
在对象资源管理器中打开 “数据库” 文件夹,然后选择一个数据库。
右键单击 “角色 ”,然后选择“ 新建角色”。 请注意,角色是在数据库级别创建的,并应用于其中的对象。 不能跨数据库共享角色。
在 “常规 ”窗格中,输入一个名称和(可选)说明。 此窗格还包含多个数据库权限,例如“完全控制”、“进程数据库”和“读取定义”。 查询多维数据集或表格模型不需要这些权限。 有关这些 权限的详细信息,请参阅“授予数据库权限”(Analysis Services )。
输入名称和可选说明后,请继续执行下一步。
步骤 2:分配成员身份
在“ 成员身份 ”窗格中,单击“ 添加 ”以输入将使用此角色访问多维数据集的 Windows 用户或组帐户。 Analysis Services 仅支持 Windows 安全标识。 请注意,此步骤中未创建数据库登录名。 在 Analysis Services 中,用户通过 Windows 帐户进行连接。
继续执行下一步,设置多维数据集权限。
请注意,我们正在跳过“数据源”窗格。 Analysis Services 数据的大多数常规使用者不需要对数据源对象具有权限。 有关何时设置此权限的详细信息,请参阅在数据源对象(Analysis Services)上授予权限。
步骤 3:设置多维数据集权限
在“多维数据集”窗格中,选择一个多维数据集,然后单击
Read或读/写。Read访问足以满足大多数操作。 读取/写入 仅用于写回,而不是处理。 有关此功能的详细信息,请参阅 “设置分区写回 ”。请注意,您可以选择多个立方体,以及“创建角色”对话框中可用的其他对象。 向多维数据集授予权限允许访问与多维数据集相关的维度和视角。 无需手动添加多维数据集中已表示的对象。
如果需要因对象或用户而异授权,例如,若要使某些度量值不可用,则可以允许或拒绝对特定对象(即使在单元格上)进行原子访问。 有关详细信息,请参阅 授予对维度数据(Analysis Services)的自定义访问权限 和 授予对单元格数据的自定义访问权限(Analysis Services)。
此时,单击 “确定”后,此角色的所有成员都可以按照您指定的权限级别访问多维数据集。
请注意,在 多维数据集 窗格中,您可以授予用户权限,通过 钻取和本地多维数据集 从服务器多维数据集中创建本地多维数据集,或者仅允许通过 钻取 权限进行钻取。
最后,此窗格允许你向多维数据集授予 进程数据库 权限,使此角色的所有成员能够处理此多维数据集的数据。 由于处理通常是受限作,因此建议将该任务留给管理员,或为该任务专门定义单独的角色。 有关处理权限最佳做法的详细信息 ,请参阅“授予进程权限”(Analysis Services )。
步骤 4:测试
使用 Excel 测试多维数据集访问权限。 还可以使用 SQL Server Management Studio,遵循下一步所述的相同技术 , 以非管理员用户身份运行应用程序。
注释
如果你是 Analysis Services 管理员,管理员权限将与具有较少权限的角色相结合,因此很难隔离测试角色权限。 为了简化测试,建议使用分配给要测试的角色的帐户打开 SSMS 的第二个实例。
按住 Shift 键,右键单击 Excel 快捷方式以 访问“以其他用户身份运行 ”选项。 输入具有此角色成员身份的 Windows 用户或组帐户之一。
当 Excel 打开时,使用“数据”选项卡连接到 Analysis Services。 由于以其他 Windows 用户身份运行 Excel, 因此使用 Windows 身份验证 选项是测试角色时要使用的正确凭据类型。 请参阅从客户端应用程序(Analysis Services)进行连接,如果您需要有关此步骤的帮助。
如果在连接上遇到错误,请检查 Analysis Services 的端口配置,并验证服务器是否接受远程连接。 请参阅 配置 Windows 防火墙以允许 Analysis Services 访问 端口配置。
步骤 5:编写角色定义和分配脚本
最后一步,应生成一个脚本来保存刚刚创建的角色定义。
从 SQL Server Data Tools 重新部署项目将覆盖项目中未定义的任何角色或角色成员身份。 重新部署后重新生成角色和角色成员身份的最快方法是通过脚本。
在 SSMS 中,导航到 “角色” 文件夹,然后右键单击现有角色。
选择 “脚本角色”作为 | CREATE TO | 文件。
使用 .xmla 文件扩展名保存该文件。 若要测试脚本,请删除当前角色,在 SSMS 中打开该文件,然后按 F5 执行脚本。
后续步骤
可以优化多维数据集权限,以限制对单元格或维度数据的访问。 有关详细信息,请参阅 授予维度数据自定义访问权限(Analysis Services) 和 授予单元格数据自定义访问权限(Analysis Services)。
另请参阅
Analysis Services 支持的身份验证方法
授予对数据挖掘结构和模型的权限(Analysis Services)
授予对数据源对象的权限(Analysis Services)