使用表权限配置安全性
备注
从 2022 年 10 月 12 日起,Power Apps 门户更名为 Power Pages。 详细信息请参阅:Microsoft Power Pages 现已正式发布(博客)
不久后我们将迁移 Power Apps 门户文档并将其与 Power Pages 文档合并在一起。
若要将门户中的安全性应用到单独记录,请使用表权限。 可向 Web 角色添加表权限,以便定义组织中的角色,这些角色在逻辑上对应于记录所有权和访问权限的特权和概念。 请记住,给定联系人可以属于任意数量的角色,并且给定角色可以包含任意数量的表权限。 详细信息: 为门户创建 Web 角色。
虽然通过内容授权授予了在门户站点地图中更改和访问 URL 的权限,但是站点管理员还希望保护其使用基本窗体和列表生成的自定义 Web 应用程序。 详细信息: 定义基本窗体和定义列表。
为了保护这些功能,表权限允许授予细粒度权限,以及通过关系定义启用记录级别安全性。
将表权限添加到 Web 角色
打开“门户管理”应用。
转到门户 > Web 角色,打开要添加权限的 Web 角色。
在相关下,选择表权限。
选择添加现有表权限以将现有表权限添加到 Web 角色。
浏览表权限或选择新建表权限以创建新的表权限记录。
创建新表权限记录时,第一步是确定要保护哪个表。 下一步是定义访问类型(如以下部分中所述)和定义该访问类型的关系(对于全局以外的任何访问类型)。 最后,确定通过此权限授予角色的权限。 权限具有累积性,因此,如果用户处于已授予读取权限的一个角色,也处于已授予读取和更新权限的另一个角色,则该用户将对两个角色之间重叠的对象具有读取和更新权限。
备注
选择网页之类的表、Web 文件和其他配置表无效,可能产生其他意外后果。 门户将根据内容访问控件(而不是表权限)断言配置表的安全性。
全局访问类型
如果将具有读取权限的表权限记录授予具有全局访问类型的角色,则该角色中任何联系人都将能够访问已定义表的所有记录。 例如,他们可以查看所有潜在顾客、所有客户,等等。 所有列表将自动遵循此权限;基本上根据为该列表定义的 Microsoft Dataverse 视图显示所有记录。 此外,如果用户试图通过他们没有访问权限的基本窗体访问记录,他们将收到一个权限错误。 例如,请参见此示例场景,了解如何向汽车经销商中所有通过身份验证的用户显示所有汽车目录。
联系人访问类型
使用联系人访问类型,拥有已定义权限记录的角色的登录用户将拥有该权限授予的权限,但仅适用于通过定义的关系与该用户的联系人记录相关的记录。
在列表中,此访问类型意味着将向该列表显示的任何 Microsoft Dataverse 视图添加筛选器,用于仅检索直接链接到当前用户的记录。 (根据场景,可将此关系视为所有权或管理权。)例如,请参见此示例场景,了解如何在汽车经销商中显示、更新和删除私家车目录.
如果加载记录时此关系已存在,则基本窗体仅允许相应的“读取”、“创建”、“写入”等权限。 详细信息:定义基本窗体。
客户访问类型
使用客户访问类型,拥有已定义权限记录的角色的登录用户将拥有该权限授予的权限,但仅适用于通过定义的关系与该用户的上级单位记录相关的记录。
此访问类型意味着列表将只显示与用户的上级单位关联的所选表的记录。 例如,如果表权限允许对具有客户访问类型的潜在顾客表进行读取访问,具有此权限的用户只能查看该用户上级单位的所有潜在顾客。 例如,请参阅此示例场景,了解如何让员工可以查看其公司所有的全部汽车经销商。
自助访问类型
自助访问类型允许您定义用户对其自己的联系人(身份)记录拥有的权限。 用户可以使用基本窗体或多步窗体对与他们的配置文件链接的联系人记录进行更改。 默认个人资料页具有特殊的内置窗体,允许任何用户更改其基本联系人信息以及加入和退出市场营销列表。 如果您的门户中包括此窗体(默认设置),则用户无需此权限便可使用它。 但是,他们将需要此权限才能使用面向其用户联系人记录的任何自定义基本窗体或多步窗体。 例如,请参阅此示例场景,了解如何允许汽车经销商的员工更新他们个人资料页上的联系人详细信息。
父访问类型
在最复杂的情况下,将为属于已定义表权限记录的表以外关系的表授予权限。 此权限实际上是父表权限的子记录。
父权限记录定义表的权限和访问类型(可能是全局或联系人访问类型,但父项也是可能的)。 该表可能与联系人相关(如果有联系人访问类型)或是全局定义的。 使用该权限时,将创建子权限,用于定义父关系中定义另一个表与该表之间的关系。
如果用户具有的 Web 角色有权访问父表权限定义的记录,该用户也拥有与父记录相关的记录的子权限定义的权限。
属性和关系
下表介绍表权限属性。
客户 | 描述 |
---|---|
客户 | 记录的描述性名称。 此字段为必填字段。 |
表名称 | 要保护的表的逻辑名称,或为了保护子权限上相关表而定义联系人关系或父关系的表的逻辑名称。 此字段为必填字段。 |
访问类型(必填) |
|
访问类型的关系 | 取决于所选的访问类型。
注意:如果客户与所选表没有现有关系,则可用关系将为空。 若要创建表表关系,请参阅表关系概述。 |
阅读 | 用于控制用户是否可以读取记录的特权。 |
写 | 用于控制用户是否可以更新记录的特权。 |
创建 | 用于控制用户是否可以创建新记录的特权。 用于为表类型创建记录的权限不适用于单独记录,而适用于表类。 |
Delete | 用于控制用户是否可以删除记录的特权。 |
追加 | 用于控制用户是否可以对指定的记录附加另一记录的特权。 “追加”和“追加到”访问权限是密不可分的。 用户每次将一条记录附加到另一条记录时,都必须同时具有这两种权限。 例如,在向案例附加注释时,您必须对注释具有“追加”访问权限,并且对案例具有“追加到”访问权限才能执行此操作。 |
追加到 | 用于控制用户是否可以将指定的记录追加到另一记录的特权。 “追加”和“追加到”访问权限是密不可分的,如上所述。 |
与潜在顾客相关的任务的全局权限
在一个场景中,可能想要使用列表和基本窗体在门户上为自定义“潜在顾客经理”Web 角色中的所有人呈现所有潜在顾客。 在“潜在顾客编辑”窗体上(在列表上选择潜在顾客行便会启动该窗体),子网格将显示相关任务记录。 潜在顾客管理员角色中的任何人均可访问这些记录。 第一步,我们将为潜在顾客管理员角色中的任何人指定对潜在顾客的全局权限。
此角色具有与使用全局访问类型的潜在顾客表相关的表权限。
具有此角色的用户可以通过门户上的列表或窗体访问所有潜在顾客。
我们现在将子权限添加到全局潜在顾客权限。 在父权限记录打开的情况下,转到子表权限子网格,选择新建表权限添加新记录。
选择表作为任务,并选择访问类型作为父。 随后您可以选择父关系 (Lead_Tasks)。 此权限表示,Web 角色中具有父权限的联系人将对与潜在顾客相关的所有任务具有全局权限。
若要使您的列表遵循这些权限:
必须在列表上启用表权限。
必须有一些操作实际上允许用户执行已为其授予权限的操作。
还必须在基本窗体记录上启用权限。
窗体必须显示一个页面,该页面上有一个子网格,用于您要使用子权限启用的表。 在这种情况下,表将是“任务”。
如果您想要为任务启用读取或创建权限,您还需要配置这些基本窗体,并编辑窗体以移除相关查找字段。
此操作会为与潜在顾客相关的所有任务授予权限。 如果任务显示在列表上,筛选器将被添加到列表中,以仅在列表中显示与潜在顾客相关的任务。 在我们的示例中,这些任务使用子网格显示在基本窗体上。
任务的联系人访问类型权限
另一个示例是,如果您允许访问联系人与该任务的父级潜在顾客相关的任务。 此场景与上一节中的示例几乎完全相同,只是在此情况下,父权限的访问类型是“联系人”而不是全局。 必须在父关系上指定潜在顾客表与联系人表之间的关系。
授予这些权限之后,潜在顾客管理员角色中的用户可以访问由联系人访问类型权限指定并且与他们直接相关的潜在顾客,以及由子权限指定并且与相同潜在顾客相关的访问任务。