用于控制访问权限的列级安全性
在表级别授予记录级权限,但您可能具有与表关联的某些列,其中包含比其他列更敏感的数据。 在这些情况下,您使用列级安全性控制对特定列的访问权限。
列级安全性的范围是组织范围的,并且应用于所有数据访问请求,包括以下请求和调用:
- 客户端应用程序(例如 Web 浏览器、移动客户端或 Microsoft Dynamics 365 for Outlook)中的数据访问请求
- 使用 Microsoft Dataverse Web 服务的 Web 服务调用(用于插件、自定义工作流活动和自定义代码)
- 报告(使用筛选视图)
备注
表相关术语的使用取决于所使用的协议或类库。 在根据协议或技术使用的术语中了解详细信息。
列级安全性概述
列级安全性可用于大多数现成表上的默认列、自定义列和自定表上的自定义列。 列级安全性由安全配置文件管理。 要实现列级安全性,系统管理员将执行以下任务。
对给定表的一个或多个列打开列安全性。
选择可选的 掩码规则。
关联多个现有的安全配置文件,或创建一个或多个新安全配置文件,以向特定用户或团队授予相应的权限。
安全性配置文件确定以下事项:
- 安全列的权限
- 分配给用户和团队的访问权限
安全配置文件可以配置为在列级别向用户或团队成员授予以下权限:
- 读取:对列数据的只读访问权限。
- 读取未掩码值:“读取”列的数据未掩码值。
- 创建:此配置文件中的用户或团队可以在创建行时将数据添加到此列。
- 更新:此配置文件中的用户或团队可以在创建列数据后对其进行更新。
可配置这四个权限的组合,以确定特定数据列的用户权限。
重要提示
除非将一个或多个安全配置文件分配给了具有安全性的列,否则只有具有系统管理员安全角色的用户可以访问该列。
限制联系人表的移动电话列的示例
假设您的公司政策是销售成员对联系人手机号码具有不同级别的访问权限,如此处所述。
用户或团队 | 访问权限 |
---|---|
销售经理 | 只读 只能以掩码形式查看联系人的移动电话号码。 |
副总裁 | 完全。 可以创建、更新和查看联系人的手机号码。 |
销售员与其他所有用户 | 无。 不能创建、更新或查看联系人的移动电话号码。 |
若要限制此列,您应执行以下任务。
保护列
登录到 Power Apps。
选择 表。
选择联系人表。
在架构下面,选择列。
在“列”列表中向下滚动,打开移动电话。
展开高级选项,然后在常规下,选择启用列安全性。
选择掩码规则下拉菜单,然后选择一个掩码规则。
选择保存。
配置安全配置文件
从 Power Platform 管理中心,选择要为其配置安全配置文件的环境。
选择设置>用户 + 权限>列安全配置文件。
选择新建配置文件,输入一个名称,如销售经理,输入说明,然后选择保存。
选择销售经理,选择用户选项卡,选择 + 添加用户,选择要向其授予联系人窗体中移动电话号码的读取访问权限的用户,然后选择添加。
小费
您可以创建包括授予访问权限的所有用户的一个或多个团队,而无需添加每个用户。
重复上述步骤,为副总裁创建列安全配置文件。
配置列权限
选择列安全配置文件选项卡,然后选择销售经理。
选择列权限选项卡上,选择 mobilephone,然后选择编辑。 将读取设置设为允许,将其他设置设为不允许,然后选择保存。
选择列安全配置文件选项卡,然后选择副总裁。
选择列权限选项卡上,选择 mobilephone,然后选择编辑。 将读取设置为允许,将读取未掩码值设置为一个记录,其余设置为允许,然后选择保存。
在以前创建的列安全配置文件中未定义的任何用户都将无法访问联系人窗体或视图上的移动电话列。 列值显示 ********,表示列已受保护。
可以保护哪些列?
添加新列
登录到 Power Apps。
在导航窗格中选择表。
选择一个表,然后在架构下选择列。
在命令栏中选择+新建列选项。
输入显示名称和描述。
选择数据类型。
查找和公式数据类型不能以列安全性进行设置。 有关详细信息,请参阅不能为列安全性启用的属性。
展开高级选项,然后在常规下,选中启用列安全性复选框。
查看列级安全性
系统中每个列都包含是否允许设置列安全性。 使用以下步骤查看列安全性设置。
登录到 Power Apps。
在导航窗格中选择表。
选择一个表,然后在架构下选择列。
选择一列,展开高级选项,然后在常规下,查看启用列安全性的状态。
如果可以选择启用列安全性,该列可以启用列安全性。
无法为列安全性启用的属性
尽管可以保护大多数属性,还是有一些系统属性不能保护,如 ID、时间戳和记录跟踪属性。 下面是一些不能为列安全性启用的属性。
- ownerid、processid、stageid、accountid、contactid、businessunitid、organizationid、solutionid、supportingsolutionid、transactioncurrencyid、goalownerid、subscriptionid、userpuid、yammeruserid
- createdby、modifiedby、OwningTeam、OwningUser、Owningbusinessunit、yammeremailaddress
- createdon、EntityImage_Timestamp、modifiedon、OnHoldTime、overriddencreatedon、overwritetime、modifiedonbehalfby、timezoneruleversionnumber、versionnumber、importsequencenumber
- statecode、statuscode、componentstate、exchangerate、utcconversiontimezonecode
- fullname、firstname、middlename、lastname、yominame、yomifirstname、yomifullname、yomilastname、yomimiddlename
- 弃用的列,例如:traversedpath、stageid
可以通过按照浏览组织中的元数据中的说明安装元数据浏览器解决方案,查看组织的表元数据,包括可以为哪些列启用列安全性。
使用列安全性的最佳做法
当您使用包含一个受保护列的计算列时,数据可能会在计算列中显示给不具有受保护列权限的用户。 如此一来,应该保护原始列和计算列。
某些数据(如地址)由多个列组成。 因此,若要完全保护包含多个列的数据(如地址),则必须保护和配置表的多个列上的相应列安全配置文件。 例如,若要完全保护表的地址,请保护所有相关地址列,例如 address_line1、address_line2、address_line3、address1_city 和 address1_composite 等。
备注
要更改列安全性,需要客户端(如模型驱动应用)上的最终用户刷新浏览器,以使更改生效。 在动态调整访问规则时,应考虑这一点。