跳到主要内容

范例:AdventureWorks Sales - 2. 角色 & 访问控制

· 阅读需 14 分钟
Tiven Wang

元数分析云中的语义模型提供了丰富的角色权限控制功能,以确保数据的安全性和访问控制。这些角色权限控制可以应用于多维数据集、维度、层级和成员,以满足用户的特定需求。

在元数分析云中,可以创建两种类型的角色:单一角色和复合角色。

  1. 单一角色: 单一角色是指拥有特定权限的独立角色。可以为单一角色指定访问多维数据集、维度、层级和成员的权限。这样,可以控制角色对数据模型中不同层次的访问和操作。

  2. 复合角色: 复合角色是由多个单一角色组合而成的角色。例如,可以为区域经理创建一个复合角色,允许其访问销售数据集中的子区域的合集。

通过这些角色权限控制功能,元数分析云提供了灵活的 🔐访问控制机制,使管理员能够根据用户角色和需求,精确地管理数据的访问权限。这不仅保护了敏感数据的安全性,还确保了数据的合规性和隐私保护。

角色产品经理
角色产品经理

角色设计

接下来我们将为 AdventureWorks Sales 数据集创建示例角色以演示元数分析云语义模型的角色权限控制的功能。上一篇 范例:AdventureWorks Sales - 1. 建模 创建了 AdventureWorks Sales 多维数据集,包含了维度:

  • 经销商 Reseller;
  • 客户 Customer;
  • 销售区域 Sales Territory;
  • 日期 Date;
  • 产品 Product;
  • 销售订单 Sales Order;

以及度量:

  • 订单数量 Order Quantity;
  • 销售额 Sales Amount;
  • 成本 Total Product Cost;
  • 单价 Unit Price;
  • 利润 Profit;

首先我们为 Sales 数据集创建四个可能的单一角色的例子:

  1. 销售经理:

    • 具有对销售数据集的完全访问权限,可以查看销售订单、产品销售情况等详细信息。
    • 可以访问所有维度,包括时间、地区、产品等,以便进行全面的销售分析和报告。
  2. 区域销售经理:

    • 可以访问销售数据集的部分内容,限定在特定区域的销售数据。
    • 可以查看和分析特定地区的销售趋势、客户行为等数据。
  3. 产品经理:

    • 具有对销售数据集除客户维度外的完全访问权限,但仅限于产品相关的信息。
    • 可以查看产品销售情况、产品分类、产品属性等数据,并进行产品分析和比较。
  4. 销售代表:

    • 具有有限的访问权限,仅能查看和分析与自己相关的客户信息。
    • 可以查看个人销售业绩、客户反馈、订单状态等数据,以便跟踪和管理自己的销售业务。

接下来我们将为这些角色在系统中创建相应的角色定义。

创建标准角色

销售经理

销售经理 (Sales Manager) 具有对销售数据集的完全访问权限,所以我们创建一个标准角色并命名为 Sales Manager,然后为其分配 Sales 数据集的完全访问权限。

  • 角色概览
    • 默认访问:所有,权限包括所有维度和多维数据集
    • 用户:分配给销售经理角色的用户账号
  • 多维数据集:销售
    • 默认访问:所有,权限包括所有维度和度量
创建新角色

语义模型管理员可以在角色概览界面添加用户,即为用户分配角色。也可以在访问控制概览界面里的用户管理中为用户分配角色。

区域销售经理

区域销售经理 (Regional Sales Manager) 的访问权限被限定在特定区域的销售数据,我们将使用 Sales 数据集的销售区域 (Sales Territory) 维度成员来对不同的区域销售经理角色进行区分。

例如,我们为区域销售经理创建了两个角色:

  • 北美区域销售经理 (Regional Sales Manager - North America)
  • 欧洲区域销售经理 (Regional Sales Manager - Europe)

如下图所示,为北美区域销售经理创建一个标准角色,角色的默认访问权限设置为 所有 代表除了特殊限制的销售区域成员外其他维度可以自由访问

角色区域销售经理
角色区域销售经理

添加多维数据集 Sales 到此角色内,并转到此数据集的角色设置界面,并设置属性

  • 默认访问:所有,代表除了特殊限制的销售区域成员外其他维度可以自由访问

然后为该角色添加限制条件,限制条件为销售区域 (Sales Territory) 维度的成员,将维度 Sales Territory 拖至右侧区域以添加维度限定条件,并设置维度的权限配置:

  • 汇总策略:隐藏,代表禁止访问除允许的成员外的总数据。
  • 默认访问:自定义,代表使用显式方式设置成员权限。

然后展开销售区域的层级大区的成员,将 North America 拖至维度限定的成员区域,即此角色用户只能访问北美区域的销售数据。

角色区域销售经理多维数据集
角色区域销售经理多维数据集

最终设置了此角色的用户将只能访问销售区域为北美的及其子成员的销售数据。

同理创建欧洲区域销售经理的角色,将销售区域的限定条件设置为 Europe

产品经理

产品经理 (Product Manager) 是限于访问特定产品相关的信息,并且不能访问客户维度的信息的角色,除此之外其他维度可以自由访问。

例如我们为产品经理创建了三个角色:

  • 产品经理 (Product Manager)
  • 产品经理 - 自行车 (Product Manager - Bikes)
  • 产品经理 - 服装 (Product Manager - Clothing)

如下图所示,创建了 产品经理 - 服装 的产品经理角色,其在产品维度上只能访问 Clothing 成员及其子成员的数据,并且不能访问客户维度的数据:

  • 产品维度:
    • 汇总策略:隐藏,代表禁止访问除允许的成员外的总数据。
    • 默认访问:自定义,代表使用显式方式设置成员权限。
      • Clothing:允许访问
  • 客户维度:
    • 默认访问:无,代表禁止访问客户维度的数据。
角色产品经理
角色产品经理

其他两个角色的设置类似,只是产品经理 (Product Manager) 在产品维度上能访问所有数据,产品经理 - 自行车 (Product Manager - Bikes)在产品维度上只能访问 Bikes 成员及其子成员的数据。

销售代表

销售代表 (Sales Representative) 角色具有可以查看包括销售数据、客户信息和销售业绩指标的能力,

例如我们为这两个城市的销售代表分别创建两个角色:

  • 销售代表 - 旧金山 (Sales Representative - San Francisco)
  • 销售代表 - 伦敦 (Sales Representative - London)
角色销售代表
角色销售代表

其他的销售代表也可以按照具体客户或者更大的负责范围进行创建角色,如 Germany (Country 层级) 或 California (State 层级)。

复合角色

复合角色 (Composite Role) 是由多个角色组合而成的角色,复合角色可以包含其他复合角色,但是不能包含自身。 例如,我们可以创建一个复合角色,将产品经理 (Product Manager) 和销售代表 (Sales Representative) 组合成一个角色,这样的话,这个角色的用户就可以同时访问产品经理和销售代表的数据。

如下图所示,创建一个复合角色,创建角色时选择类型为 复合角色,然后将需要组合的角色拖至右侧角色管理区域即可:

复合角色
复合角色

授权用户

角色和权限设置完成后,您可以将用户授权到相应的角色上。这可以通过将用户与角色关联来实现。您可以在角色的用户管理中添加用户账号来关联。

如下图所示,在角色的用户管理中添加用户账号来关联:

角色添加用户
角色添加用户

或者在访问控制概览界面的用户管理里添加用户账号并分配角色来关联权限:

角色概览管理用户
角色概览管理用户

验证权限

分配角色给用户之后我们可以验证用户的权限是否正确。如果是模型编辑者自己可以将角色分配给自己账号,然后转到多维数据集的计算界面,通过数据预览验证数据是否受角色权限的限制了。

如下图所示,当前账号分配了 Product Manager & Representative London 角色,那么此账号在客户维度上只能访问到 London 的客户数据并且在产品维度上能访问所有产品数据:

验证权限
验证权限

总结

元数分析云的语义模型提供了强大的角色管理和权限控制功能。通过角色管理,用户可以创建和定义不同的角色,并将用户授权到这些角色上。每个角色可以具有特定的数据访问权限,包括对维度、层级和成员的访问控制。角色的权限可以是单一角色或复合角色,允许灵活地定义数据的可见性和操作权限。通过这种方式,元数分析云的语义模型确保了安全性和数据隔离,同时使得用户能够根据其角色的权限访问和操作相应的数据,从而提升数据分析和决策的效率和准确性。

附录