Analysis Services (安全角色 - 多维数据)
Microsoft SQL Server Analysis Services中使用角色来管理 Analysis Services 对象和数据的安全性。 在基本术语中,角色将安全标识符 (SID 关联) Microsoft Windows 用户和组,这些用户和组具有为 Analysis Services 实例管理的对象定义的特定访问权限和权限。 Analysis Services 中提供了两种类型的角色:
服务器角色,一个固定角色,提供对 Analysis Services 实例的管理员访问权限。
数据库角色,这些角色由管理员定义,用于控制非管理员用户对对象和数据的访问权限。
Microsoft 中的安全性SQL Server Analysis Services安全性通过使用角色和权限进行管理。 角色为用户组。 用户(也称为成员)既可向角色中添加,也可从中删除。 对象的权限按照角色来指定,对于某一角色拥有权限的对象,该角色中的所有成员都可使用。 角色中的所有成员对这些对象具有相等的权限。 各对象都有其特定权限。 每个对象都对应一个所授权限的集合;对于同一对象,可授予不同的权限集。 对于对象权限集合中的单个权限,只能向其分配一个角色。
角色和角色成员对象
角色是用户(成员)集合的包含对象。 角色定义在 Analysis Services 中建立用户的成员身份。 由于权限是按角色分配的,所以用户必须先是某个角色的成员,然后才能访问对象。
Role 对象由参数名称、ID 和成员组成。 成员是字符串的集合。 每个成员都包含有格式为“域\用户名”的用户名。 名称是包含角色名称的字符串。 ID 是包含角色的唯一标识符的字符串。
服务器角色
Analysis Services 服务器角色定义 Windows 用户和组对 Analysis Services 实例的管理访问权限。 此角色的成员有权访问 Analysis Services 实例上的所有 Analysis Services 数据库和对象,并且可以执行以下任务:
使用 SQL Server Management Studio 或 SQL Server Data Tools (SSDT) 执行服务器级管理功能,包括创建数据库和设置服务器级属性。
使用分析管理对象 (AMO) 通过编程方式执行管理功能。
维护 Analysis Services 数据库角色。
启动跟踪(并非用于处理事件,此操作可以由具有“处理”访问权限的数据库角色执行)。
Analysis Services 的每个实例都有一个服务器角色,用于定义哪些用户可以管理该实例。 该角色的名称和 ID 均为 Administrators,与数据库角色不同,服务器角色不能删除,也不能添加或删除权限。 换句话说,用户要么是或不是 Analysis Services 实例的管理员,具体取决于该用户是否包含在 Analysis Services 实例的服务器角色中。
数据库角色
Analysis Services 数据库角色定义用户对 Analysis Services 数据库中的对象和数据的访问权限。 数据库角色作为 Analysis Services 数据库中的单独对象创建,并且仅适用于在其中创建该角色的数据库。 Windows 用户和用户组由管理员包括在该角色中,管理员也可定义角色中的权限。
角色的权限允许成员访问和管理数据库以及数据库中的对象和数据。 每个权限都有一个或多个与其关联的访问权限,这些访问权限进而会使该权限更好地控制对数据库中特定对象的访问。
Permission 对象
权限与特定角色的对象(多维数据集、维度等)相关联。 权限指定角色的成员可对该对象执行哪些操作。
类是一个抽象类。 因此,您必须使用派生类定义相应对象的权限。 对于每个对象,均定义一个权限派生类。
对象 | 类 |
---|---|
Database | DatabasePermission |
DataSource | DataSourcePermission |
Dimension | DimensionPermission |
Cube | CubePermission |
MiningStructure | MiningStructurePermission |
MiningModel | MiningModelPermission |
下表列出了权限可能启用的操作:
操作 | 值 | 说明 |
---|---|---|
进程 | {true , false }Default= |
如果值为 true ,则成员可以处理该对象以及该对象中包含的任何对象。处理权限不适用于挖掘模型。 MiningModel 权限始终从 MiningStructure 继承。 |
读取定义 | {None , Basic , Allowed }Default= |
指定成员是否能读取与对象关联的数据定义 (ASSL)。 如果值为 Allowed ,则成员可读取与对象关联的 ASSL。Basic 和 Allowed 由对象中包含的对象继承。 Allowed 可覆盖 Basic 和 None 。对象的 DISCOVER_XML_METADATA 要求值为 Allowed 。 创建链接对象和本地多维数据集时,要求值为 Basic 。 |
读取 | {None , Allowed }Default= None (DimensionPermission 除外,其中 default=Allowed ) |
指定成员是否可读取架构行集和数据内容。Allowed 提供对数据库的读取访问权限,使你能够发现数据库。对于多维数据集,如果值为 Allowed ,则可读取架构行集内部并可访问多维数据集内容(除非受到 CellPermission 和 CubeDimensionPermission 的约束)。对于维度,如果值为 Allowed ,则可读取维度中的所有属性(除非受到 CubeDimensionPermission 的约束)。 读取权限仅用于对 CubeDimensionPermission 的静态继承。 对于维度,如果值为 None ,则将隐藏维度,且仅授予对可聚合属性的默认成员的访问权限;如果维度包含不可聚合属性,则将会引发错误。对于 MiningModelPermission,如果值为 Allowed ,则将授予查看架构行集中对象并执行预测联接的权限。注意Allowed 是读取或写入数据库中的任何对象所必需的。 |
写入 | {None , Allowed }Default= |
指定成员是否拥有对父对象的数据的写入权限。 该权限适用于 Dimension、Cube 和 MiningModel 子类。 但不适用于数据库 MiningStructure 子类,这将会生成验证错误。 对于 Dimension,如果值为 Allowed ,则将授予对维度中所有属性的写入权限。对于 Cube,如果值为 Allowed ,则对于定义为 Type=writeback 的分区,则将授予对其多维数据集的单元的写入权限。对于 MiningModel,如果值为 Allowed ,则将授予修改模型内容的权限。Allowed MiningStructure在 Analysis Services 中没有特定的含义。 注意: 写入不能设置为 , Allowed 除非读取也设置为 Allowed |
管理 注意: 仅在数据库权限中 | {true , false }Default= |
指定成员是否可管理数据库。 如果值为 true ,则将授予成员对数据库中所有对象的访问权限。成员可以拥有特定数据库的管理权限,但却不能拥有其他数据库的管理权限。 |