Process Mining
2021.10
False
横幅背景图像
Process Mining
上次更新日期 2024年4月2日

使用访问矩阵启用基于角色的数据访问

简介

本页介绍如何使用访问矩阵为最终用户启用基于角色的数据访问权限。

第 1 部分:定义访问矩阵文件

访问矩阵定义了哪些用户可以访问发现加速器、应用程序或流程中使用的数据的哪一部分。

系统将在访问矩阵中检查最终用户的电子邮件。 根据用户的电子邮件地址与用于标识访问矩阵文件中定义的发现加速器、应用程序或流程的属性之间的关系授予访问权限。

有关矩阵文件的示例,请参见下图。



注意: 访问矩阵文件必须至少包含Email字段和用于标识允许用户查看的数据的字段。 在此示例中, Company code visibility属性用于标识流程数据。

电子邮件格式可以带或不带大写字母。 在加速器或应用程序中,系统将检查格式,并根据需要进行调整。 请参阅 第 4 部分

在此示例中,“公司代码可见性”用作筛选数据的列。 此列可以包含多个值,以便以用户只能查看有权查看的公司代码的方式筛选数据。 在同一列中,公司代码用逗号分隔。

第 2 部分:上传访问权限 mfatrix 文件

要在发现加速器、应用程序或流程中使用访问矩阵文件,您必须将其上传到“超级管理员 服务器”的“数据 ”选项卡。 请参阅 “服务器数据”选项卡

有关示例,请参见下图。



在上面的示例中,使用了“ 购买到付款 Discovery Accelerator ”的访问矩阵,但也可以以相同的方式将其用于任何其他 Discovery Accelerator 或应用程序。 您可以维护多个文件,也可以向原始 Excel 文件添加更多列。

有关应用程序级别的限制,请参阅 身份验证

第 3 部分:创建用于访问访问矩阵的表格

要从 Discovery Accelerator 或应用程序访问访问矩阵,您必须创建以下内容

表格:

  • 显示当前用户的系统表;
  • 连接字符串表,以访问“ 服务器数据 ” 选项卡中的访问矩阵。

有关示例,请参见下图。



在此示例中,使用了以下表格:

  • User
  • Access Matrix

用户表

请按照以下步骤创建系统表以显示当前用户。

步骤

操作

1

在开发环境中打开加速器或应用程序,然后转到“数据”选项卡。

2

右键单击表格列表,然后选择“新建表格”->“系统表格...”。

3

双击新表格,然后选择“ 当前用户 ” 作为“ 表格作用域”。

单击“确定”

4

F2 并将新表格重命名为 User

User表是显示当前用户的系统表。 根据电子邮件检查对数据的访问权限。

Access_Matrix 表

Access Matrix表使用“超级管理员 服务器数据 ”选项卡中访问矩阵文件的连接字符串。 请按照以下步骤创建连接字符串表以加载访问矩阵文件。

步骤

操作

1

右键单击表格列表,然后选择“新建表格”->“连接字符串...”。

2

右键单击新表格,然后选择“高级”->“选项”。

3

在“ 表格选项 ”对话框中,单击“ 高级 ”部分中“表格作用域”字段的下拉列表,然后将作用域更改为“ 服务器”。

4

双击新表,然后将连接字符串添加到已上传到“ 服务器数据 ” 选项卡的访问矩阵文件中。

单击“确定”

5

F2 并将新表格重命名为 Access_Matrix

请参见下图。



第 4 部分:创建表达式以检查允许用户查看的数据

此部分包含以下步骤

步骤 1:更正输入格式;

步骤 2:将登录用户与访问矩阵匹配;

步骤 3:为缓存生成创建回退;

步骤 4:筛选数据。

步骤 1:更正输入格式

为确保访问矩阵与 Active Directory 中的最终用户之间的电子邮件格式相似,您必须创建一个表达式以去除电子邮件格式。 请按照以下步骤创建表达式。

步骤

操作

1

单击“ Access_matrix ”表。

2

右键单击表格项目列表,然后选择 “新建表达式...”

3

在“ 名称 ” 字段中输入“电子邮件”,然后选择“ 每条记录 ” 作为“ 类型”。

4

输入表达式:

trim(lower(Email_input))

5

单击“确定”

请参见下图。



步骤 2:将登录用户与访问矩阵匹配

您必须在User表中创建一个查找表达式,该表达式返回允许用户查看的公司代码(或其他数据属性)。

步骤

操作

1

单击“ 用户 ” 表。

2

右键单击表格项目列表,然后选择“新建表达式...”。

3

在“ 名称 ”字段中输入“公司代码可见性查找”,然后选择“ 查找 ”作为“ 类型”。

4

选择 Access_Matrix 作为 输入表

5

输入表达式:

any(records.Company_code_visibility_input)

6

右键单击“ 设置” 面板,然后选择“ 添加级别”。

7

单击“ ...” ,然后选择“ 电子邮件 ”表达式。

8

右键单击“ 电子邮件 表达式**”,然后选择 “设置为表达式级别”

9

单击“确定”

请参见下图。



如果允许用户查看所有内容,则返回ALL 。 如果未在访问矩阵中定义用户,则查找将返回NULL ,以确保新用户不会看到任何数据。

步骤 3:为缓存生成创建回退

这是确保在生成缓存期间获取所有数据以生成缓存的必要步骤。 为避免访问矩阵在缓存生成和筛选所有数据期间返回 NULL,您需要设置回退。

为确保为整个数据集生成缓存,可以使用ALL作为回退。 这意味着在生成缓存时不应用筛选。 仅在生成缓存后筛选特定用户的数据。 此逻辑基于电子邮件字段是创建新用户时的必填字段,因此对于其他用户,该字段不会为空。 在缓存生成期间,电子邮件字段为空,因此不应用筛选器。

请按照以下步骤创建要回退的表达式。

步骤

操作

1

单击“ 用户 ” 表。

2

右键单击表格项目列表,然后选择 “新建表达式...”

3

在“名称”字段中输入“公司代码可见性”,然后选择“按记录”作为“类型”。

4

输入表达式:

if ( Email = NULL , "ALL" , Company_code_visibility_lookup )

5

单击“确定”

请参见下图。



如果用户已分配“ALL”,则允许该用户查看所有数据。 否则,允许用户查看的数据由公司代码(或您指定的任何其他属性)确定。

步骤 4:筛选数据

表达式必须检查用户是否已分配“ALL”。 在这种情况下,系统会向用户显示所有数据。 否则,表达式必须提取属性并检查此属性是否在列表中。

由于访问矩阵中的公司代码保留在单个行中,因此还需要对其进行拆分和修剪,以确保为每个公司代码(或您指定的任何其他属性)创建一个列表。 修剪用于删除文本中不需要的空格。

请按照以下步骤创建表达式以筛选数据。

步骤

操作

1

单击“ 案例数据” 表。

2

右键单击表格项目列表,然后选择 “新建表达式...”

3

在“名称”字段中输入“公司代码筛选器用户”,然后选择“按记录”作为“类型”。

5

输入表达式以定义公司代码列表:

var list := trim(split(Company_code_visibility, ","));

8

如果用户已分配“ALL”,请输入表达式 to。

if( "ALL" in list , TRUE , split(Company_code, " " ,0) in list )

9

单击“确定”

请参见下图。



然后,在联接中使用此表达式以筛选出数据,以确保仅显示已授予的数据。 下面是一个联接示例,显示了用于筛选案例数据的特定公司代码的结果,从而显着减少了案例。

注意: 建议对案例使用筛选条件。 但是,此方法也可用于筛选事件。


此页面是否有帮助?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath 白色徽标
信任与安全
© 2005-2024 UiPath. All rights reserved.