转载

IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析

简介

文档目的

本文将在 IBM Cognos Dynamic Cube 红皮书的 “第 7 章 - 多维安全性” 基础上展开介绍,通过一些示例介绍多维安全过滤器的各种组合如何影响用户可看到的数据视图,并给出最终创建的聚合。

适用性

本文是使用 IBM Cognos BI 10.2.1 创建的。

前提条件

文中假设读者熟悉 Dynamic Cube 建模的基本概念,并且已阅读 IBM Cognos Dynamic Cube 红皮书

本文使用 great_outdoors_dynamiccube 示例模型作为基础模型,我们将修改该模型以包含本文中演示的安全过滤器和视图。还假设您已安装和配置 IBM Cognos BI 示例和合适的数据源。

回页首

概述

根据 Dynamic Cube 多维安全视图的配置方式,它们可能对用户可看到的数据和聚合产生不同影响。本文将分析围绕排序方法 Email 及产品 Firefly 4Firefly 2 的 6 种不同的安全场景。为每个维度分别创建了两个安全过滤器的不同实现。

回页首

创建安全过滤器

安全过滤器定义了如何向用户授予或拒绝对一种分层结构中的一个或多个成员的访问。在 Dynamic Cube Designer 中打开 great_outdoors_dynamiccube 模型,确保您已连接到合适的数据源。我们将使用来自数据源的成员组来构建安全过滤器,而且将需要访问数据源。

  1. 展开 Model 对象,然后展开 Order method 维度。您应看到 Levels 文件夹和 Order method 分层结构。

    图 1. Project Explorer 视图,其中展开了 Model 和 Order method 维度

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  2. 右键单击并选择 Order method 分层结构,然后选择 Open Editor... 或双击 Order method 分层结构。这将调出属性窗口。选择 Security 选项卡。

    图 2. Order method 分层结构属性窗格

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  3. 单击 Add Role based Security Filter 按钮为 Order method 分层结构创建一个新的安全过滤器。

    图 3. Order method 分层结构属性,其中选择了 New Role Security Filter 对象

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  4. 右键单击 New Role Security Filter 对象并选择 Rename 。将该对象的名称更改为 order method
  5. 接下来从 Scope 下拉框选择 Grant Members, Descendants and Ancestors
  6. 最后,从定义对话框选择 Edit ,展开 Order method 分层结构,然后展开 Members 文件夹。展开 All 根成员,将 E-mail 拖放到 express 对话框中并单击 OK 按钮。安全过滤器应出现,如图 4 所示。

    图 4. order method 的安全过滤器定义

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  7. 使用 Product 维度和分层结构重复第 1 到 6 步。安全过滤器的名称应为 product ,定义为
    set(Firefly 4;Firefly 2)
    图 5 显示了 product 过滤器创建完成后应有的外观。

    图 5. 创建完成的 product 安全过滤器的定义

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析

回页首

创建安全视图

安全视图包含一个或多个安全过滤器。结合使用多个安全过滤器,建模人员可创建同一个多维数据集的多个视图,而无需删除级别或成员。对于本文,我们将创建 7 个安全视图,用以演示各种视图对用户看到的哪些成员有何影响,还会给出所创建的聚合。表 1 给出了每个视图的名称和简短定义。

表 1. 表 1 - 安全视图定义

安全视图名称 安全视图定义
Admin View 允许管理员查看来自所有分层结构的所有成员
Order Method 允许用户查看来自除 Order method 外的所有分层结构的所有成员,Order method 分层结构使用 order method 安全过滤器过滤
Products 允许用户查看来自除 Products 外的所有分层结构的所有成员,Products 分层结构使用 product 安全过滤器过滤
Email and Firefly only 仅允许用户查看 Order method 和 Products 分层结构,它们通过相应的安全过滤器过滤
Email and Firefly combined 允许用户查看来自除 Order method(使用 order method 安全过滤器过滤)和 Products(使用 product 安全过滤器过滤)外的所有分层结构的所有成员
Firefly 仅允许用户查看 Products 分层结构,该分层结构使用 product 安全过滤器过滤
Email 仅允许用户查看 Order method 分层结构,该分层结构使用 ‘order method’ 安全过滤器过滤
  1. 右键单击并选择 gosldw_sales 多维数据集,然后选择 Open Editor... ,或者双击 gosldw_sales 多维数据集调出属性窗口。选择 Security 选项卡。

    图 6. gosldw_sales 多维数据集安全属性

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  2. 选择 Add Security View 按钮,为该多维数据集添加一个新视图。右键单击 Security Views 窗格中的 New Security View 对象并选择 Rename 。键入 Admin View 作为新名称。

    图 7. gosldw_sales 和其中名为 Admin View 的安全视图

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  3. 选择安全视图 Admin View 以突出显示它,然后选择 Add Secured Member 按钮添加此视图的安全过滤器,使用表 1 作为参考来构建每个安全视图。对于 Admin view,展开每个分层结构并选择与 All Members Granted 安全过滤器对应的复选框,如图 8 所示。完成后,单击 OK 按钮。

    图 8. Admin View 安全视图的 Add Security Filters 对话框

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  4. 您的 Security 选项卡现在应如图 9 所示。

    图 9. 包含 Admin View 定义的 Security View 选项卡视图

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  5. 重复步骤 1 到 3 以创建 Order Method 安全视图。在第 3 步中,应为除 Order Method (其中应选择了 order method 安全过滤器)外的所有分层结构选择 All Members Granted 安全过滤器。完成后,您完成的安全视图应类似于图 10,其中显示了用于 Order Method 安全视图的安全过滤器。

    图 10. Order Method 安全视图的定义

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  6. 重复步骤 1 到 3 以创建 Products 安全视图。在第 3 步中,应为除 Products (其中应选择了 product 安全过滤器)外的所有分层结构选择 All Members Granted 安全过滤器。完成后,您的安全视图应类似于图 11。

    图 11. Products 安全视图的定义

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  7. 重复步骤 1 到 3 以创建 Email and Firefly only 安全视图。在第 3 步中,您只需要为 Order methodProducts 分层结构添加 Secured Views 。对于这些分层结构,不需要选择 All Members Granted 安全过滤器,仅选择相应分层结构的 order method 和 product 安全过滤器。完成后,您的安全视图应类似于图 12。

    图 12. Email and Firefly only 安全视图的定义

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  8. 重复步骤 1 到 3 以创建 Email and firefly combined 安全视图。在这个安全视图中,为除 Order methodProducts 外的所有分层结构使用了 All Members Granted 安全过滤器,这两个分层结构使用了相应的 order methodproduct 安全过滤器。完成后,您的安全视图应类似于图 13。

    图 13. Email and firefly combined 安全视图的定义

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  9. 重复步骤 1 到 3 以创建 Firefly 安全视图。对于此安全视图,定义的惟一一个分层结构就是 Products ,它使用 product 安全过滤器,不需要 All Members Granted 安全过滤器。完成后,您的安全视图应类似于图 14。

    图 14. Firefly 安全视图的定义

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  10. 重复步骤 1 到 3 以创建 email 安全视图。对于此安全视图,定义的惟一一个分层结构就是 Order method ,它使用 order method 安全过滤器,不需要 All Members Granted 安全过滤器。完成后,您的安全视图应类似于图 15。

    图 15. email 安全视图的定义

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  11. 创建所有这些安全视图后,将 gosldw_sales 多维数据集发布到您的服务器。

在下一节中,我们要将这些安全视图分配给 LDAP 验证来源中的用户,并在同一个报告上检查每个安全视图的影响。

回页首

创建报告并分配安全视图

为了看到每个安全视图对成员和聚合的影响,需要创建单个报告。此报告不会更改,因此展示了每个视图如何更改所返回的用户的成员和聚合视图来满足查询要求。

  1. gosldw_sales 多维数据集打开 Analysis Studio,在提示时选择 Blank Analysis (图 16)。

    图 16. 为 gosldw_sales 动态多维数据集打开 Analysis Studio

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  2. Products 分层结构拖放到行上,将 Order method 分层结构拖放到列上。展开 Measures 维度并将 Quantity 拖放到交叉表上。完成后,该报告应类似于图 17。将报告保存为 Security View 并退出 Analysis Studio。

    图 17. 在 Analysis Studio 中构建的 Security View 报告

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析

创建报告后,剩余的工作就是为一系列用户分配安全视图,以展示视图对数据的影响。对于本文,创建了一组用户,使得每个安全视图有一个不同的用户。表 2 显示了每个用户分配到的安全视图。

表 2. 表 2 LDAP 用户和它们关联的安全视图

用户名 安全视图
Admin Admin View
emailonly Email
combuser Email and firefly combined
bothonlyuser Email and Firefly only
fireflyonly Firefly
omuser Order Method
produser Products
  1. 作为具有足够特权的用户登录到 IBM Cognos Administration,选择 Configuration 选项卡,然后确保选择了 Data Source Connection 部分。接下来选择 gosldw_sales 多维数据集数据源,最后选择 model 对象。您应看到一个先前在本文中创建并在多维数据集中发布的安全视图列表(图 18)。

    图 18. gosldw_sales 多维数据集的 IBM Cognos Administration 视图

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  2. 单击 Admin View 安全视图上的 Set Properties 图标,确保选择了 Override the access permissions acquired from the parent entry 复选框。添加用户 Admin Person 并设置 ReadExecuteTraverse 权限。接下来,勾选 Directory Administrators 组旁边的选项卡,并选择 Remove 从可访问 Admin View 安全视图的用户或组列表中删除它(图 19)。

    图 19. Admin View 安全视图的用户权限

    IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析
  3. 按照表 2 中详细给出的关联,为其他用户重复第 4 步。

回页首

包含安全视图的报告输出

我们已定义安全视图并关联到一组用户,接下来看看每个安全视图对用户将看到的结果的影响。下面您将看到每个报告输出,以及对为什么该安全视图以某种方式限制数据的解释。

Admin user 报告输出

第一个报告输出(如图 20 所示)由 Admin user 运行 - 此用户在运行报告时使用了 Admin View。Admin View 允许用户访问每个分层结构的所有级别和成员。因此,Admin user 可看到多维数据集的所有成员和聚合,因此显示的报告就好像没有启用安全性。

图 20. 针对 Admin user 的报告输出

IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析

仅保护 Order method 分层结构的结果

如果用户仅被授权访问 email 安全视图或 Order Method 安全视图,他们就会看到图 21 所示的输出。该报告有效和他们能够看到所有产品的原因在于,默认情况下,用户有权访问一个维度中的所有对象,除非该维度使用了安全视图来保护。Order Method 安全视图授予用户所有其他分层结构的访问权,仅将 Order Method 分层结构限制到成员 E-mail。email 安全视图限制用户仅能看到成员 E-mail,但为了访问多维数据集,他们被授予所有其他分层结构的访问权,因为这些分层结构不存在安全性定义。

请注意,每种产品的总计与成员 E-mail 的值不匹配,All member 和 Lanterns 的总计也不匹配。发生此情况的原因在于,在定义安全性时,我们将范围设置为 Grant Members, Descendants and Ancestors。因此,尽管用户被限制仅能看到 Order method 级别的成员 E-mail,但授予了对 All 级别的访问权。与其花时间聚合 Order method 子级别上存在的所有成员,查询返回 All 级别的聚合要快得多。此外,因为用户能够访问 All 级别,所以查询返回该级别的聚合值,而不是它们可查看的惟一成员的值的总计。使用名为 Firefly Lite 的 lantern 为例,它返回所有 order method 的 Firefly Lite 的总量。

图 21. 启用了 email 或 Order Method 安全视图的安全报告的示例输出

IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析

仅保护 Products 分层结构的结果

非常类似于 Order method 的安全视图,分配给用户 fireflyonly 和 produsers 的安全视图返回相同的输出。两个安全视图都限制了 Products 分层结构,使得只有成员 Firefly 2 和 Firefly 4 可见。再一次,尽管用户 fireflyonly 仅能访问 Firefly 安全视图,该视图仅定义了 Products 分层结构的安全性,但默认情况下,该用户可访问所有分层结构,除非另行指定。图 22 中的输出显示了限制 Products 分层结构的结果。

类似于上一个例子,尽管该用户仅能访问成员 Firefly 2 和 Firefly 4,但他们可访问父成员 Lanterns。结果,它没有对在 Products 级别返回的成员求和,而是仅请求 Lanterns 成员的聚合值 - 对于 Fax,这将是所有采用 Fax 订购方法的灯笼的总量。

图 22. 启用了 Firefly 或 Products 安全视图的安全报告的示例输出

IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析

一起保护 Order method 和 Products 分层结构的结果

在接下来要解释的两个安全视图中,在第一个中我们专门确保了 Order method 和 Products 分层结构的安全性,在第二个中我们确保了 Order method 和 Products 分层结构的安全性,但能够访问所有其他分层结构。在两种情况下,返回的 Order method 和 Products 成员都受到安全视图的限制。结果,Lanterns 和 All 级别的总计是所有采用 E-mail 订购方法的 Lanterns 及产品 Firefly 2 和 Firefly 4 的所有订购方法的总计(图 23)。

图 23. 启用了 Order method 和 Products 分层结构的安全报告的示例输出

IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析

组合视图

在最后一个示例中,我们将授予名为 combuser 的用户对 Order Method 和 Products 安全视图的读取、执行和遍历权限。请注意,每个视图会授予对多维数据集中所有分层结构的访问权,而仅限制其各自的分层结构。表 3 显示了在组合这两种安全视图时将创建的组合安全设置。

表 3. 表 3 - 组合 Order Method 和 Products 安全视图的结果

分层结构 Products 安全视图 Order Method 安全视图
Branch 授予所有成员访问权 授予所有成员访问权
Employee by Region 授予所有成员访问权 授予所有成员访问权
Order Method 授予所有成员访问权 E-mail
Product brand 授予所有成员访问权 授予所有成员访问权
Products Firefly 2、Firefly 4 授予所有成员访问权
Promotions 授予所有成员访问权 授予所有成员访问权
Retailers 授予所有成员访问权 授予所有成员访问权
Time 授予所有成员访问权 授予所有成员访问权
Time (close date) 授予所有成员访问权 授予所有成员访问权
Time (ship date) 授予所有成员访问权 授予所有成员访问权
Sales order 授予所有成员访问权 授予所有成员访问权

运行同一个报告(如图 24 所示)的输出表明,他们能够访问 Order Method 和 Products 分层结构的所有成员。在实际中,他们获得了一种权限组合,所以他们能够看到所有采用 E-mail 订购方法的 Lanterns 的度量值,他们能够看到 lanterns Firefly 2 和 Firefly 4 的所有订购方法的度量值。看到的 Fax 订购方法的总和值,没有反映用户能够访问的成员,因此 All 订购方法的总和与返回的 E-mail 的值不匹配。同样地,原因在于一个事实,即用户能访问订购方法的父方法或 All 级别,以及成员 Firefly 2 和 Firefly 4 的父成员或 Lanterns,返回的是它们的聚合值,而不是用户可看到的成员的总和。

图 24. 组合 Order method 和 Products 安全视图的报告输出

IBM Business Analytics 最佳实践: Cognos BI - Dynamic Cube 安全案例分析

IBM Cognos Dynamic Cubes 红皮书 的 7.8.1 节描述了上述看到的行为,即可看到成员但看不到度量值。这是因为,事实上每个安全视图中都有一些成员是其他视图中无法看到的。在最终的组合安全视图中,应返回值的元组的结果为 ERR 。有关组合安全性的更多信息,请参阅 IBM Cognos Dynamic Cubes 红皮书

正文到此结束
Loading...