限制规则注意事项
在使用限制规则时,请谨记这些注意事项和限制。
所需的 Edition
| 适用于:Lightning Experience |
| 适用于:Enterprise、Performance、Unlimited 和 Developer Edition |
可用对象
- 在创建限制规则前,我们建议您为组织关闭 Salesforce Classic。Salesforce 不能保证限制规则适用于 Salesforce Classic 体验中的最终用户。
- 限制规则对自定义对象、外部对象、合同、事件、任务、出勤表和出勤表条目可用。
- 在日历中,如果选择“显示详细信息”访问级别,用户可以查看所有事件的主题,而不管创建的限制规则如何。有关更多信息,请查看 Salesforce 帮助中的在 Lightning Experience 中共享日历。
适用功能
- 限制规则应用于以下 Salesforce 功能:
- 链接
- 列表视图
- 查找
- 记录
- 相关列表
- 报表
- 搜索
- SOQL
- SOSL
- 限制规则支持记录和用户条件中的自定义选项列表值。如果删除限制规则使用的自定义选项列表值,规则无法如预期正常工作。
- 如果限制规则的记录条件使用查找字段,并且相关记录不存在,则不会授予访问权限。
- 使用活动时间线,而非活动相关列表,例如未处理活动或活动历史。对任务和事件创建的限制规则(包括未出现在 OpenActivity 和 ActivityHistory 对象上的字段)在任何活动相关列表中都不起作用。无论列表是在查找对象、相关对象还是任何其他上下文上,此行为都适用。
- 如果使用未处理活动和活动历史记录相关列表,在应用限制规则时,如果用户拥有访问权限的活动更多,在显示记录时可能少于 50 条记录。发生此行为是因为这些列表最多显示 50 条记录,之后应用限制规则。此行为与已知问题相关列表视图中可见的五十条记录的限制相关。
- 应用限制规则后,用户仍然可以在全局搜索框快捷方式中看到他们以前有权访问的记录。当用户单击记录名称时,他们无法访问该记录,并出现错误。
- 即使用户应用了有效的限制规则,用户也可以在日历中看到其下属的事件。
- 如果用户使用 Chatter 发布者创建事件或任务记录,记录名称在相关 Chatter 帖子中可见。限制规则不会限制对这些记录名称的可见性。
- 用户无法复制具有查找权限的记录,因为限制规则无法查看该记录。例如,您有一个限制规则,该规则阻止用户查看特定的合同记录,并且用户尝试复制对合同记录具有查找权限的订单记录。用户出现错误,导致复制操作无法成功。
- 限制规则不适用于在系统模式下执行的代码。
- 具有“查看所有记录”或“查看所有数据”权限的用户可以查看所有记录,而不管限制规则如何。具有修改所有记录或修改所有数据权限的用户可以查看、编辑和删除所有记录,而不管限制规则如何。
- 应用了限制规则的用户在搜索记录时可能找不到所有可能的匹配结果。出于性能原因,搜索拥挤会限制搜索结果的数量。用户正在寻找的记录可能会超出这些限制。如需了解如何调整搜索获得最佳结果,请查看搜索拥挤如何影响搜索结果。
- UserRecordAccess 对象不考虑用户访问权限是否由于限制规则而被阻止。如果用户的访问被阻止,即使查询结果表明他们应该具有访问权限,请检查对象上的限制规则是否阻止用户的访问。
- 当相关列表或报表按具有有效限制规则的对象排序或分组时,用户只能看到他们有权查看的记录的行。
创建限制规则
- 您可在 Enterprise 和 Developer 版本中创建最多 2 个限制规则,在 Performance 和 Unlimited 版本中每个对象最多创建 5 个限制规则。
- 为每个用户的每个对象仅创建一个限制或范围规则。换句话说,对于给定对象,最多只有一个限制或范围规则可以让用户条件字段评估为给定用户的
true。 - 为对象创建限制规则不会自动限制对其子对象的访问。例如,如果为合同对象创建限制规则,则与受影响的合同记录相关联的备注的访问权限不会改变。要保护这些子对象,您必须使用其他共享机制。
- 您可以使用“记录标准”字段引用另一个对象的字段。有关示例,请参见限制规则示例情况。
- 如果您在记录条件中引用 ID,请使用 15 个字符的 ID,而不是 18 个字符的 ID。
- 在规则的记录条件中,您不能引用对象父级上的字段。例如,如果您正在为任务对象创建规则,则记录条件不能引用父级活动对象上的字段。
- 我们在用户标准和记录标准字段中支持这些数据类型:
- 布尔值
- 日期
- dateTime
- 双
- 整数
- 参考
- 字符串
- 时间
- 单一选项列表
备注 “记录条件”字段支持以逗号分隔的 ID 或字符串值。 - 限制规则仅支持 EQUALS 运算符。不支持使用“AND”和“OR”运算符。
- 不支持使用公式。
- 请勿对 Event.IsGroupEvent 创建规则,这表示事件是否拥有被邀请人。
- 您可以使用更改集或解锁的软件包将限制规则从一个组织移动到另一个组织。
- 有些 ID 特定于您的 Salesforce 组织,例如角色、记录类型或简档 ID。如果您在用户标准或记录标准字段中包含这些 Id,在 Sandbox 之间或生产组织中部署规则时,请记住这一点。如果限制规则最初是在其他地方创建的,则必须在目标组织中修改这些 ID。
- 参考“所有人”字段时,必须在语法中指定对象类型。例如,“事件”对象上的“所有人”字段可以包含用户或队列,但限制规则中不支持队列。因此,在条件仅允许用户时,有必要在记录条件语法中指定 Owner:User。
限制规则和外部对象
- 仅限使用 Salesforce Connect 创建的外部对象:OData 2.0、OData 4.0 和跨组织适配器支持限制规则。
- 将规则应用于用户时,使用跨组织适配器创建的外部对象不支持搜索或 SOSL。Salesforce 仅返回与最近查看的记录匹配的搜索结果。
- 不支持使用 Salesforce Connect 自定义适配器创建的外部对象。
- 外部对象记录数据会存储到 Salesforce 外部。管理员负责确保对外部对象创建的规则不会对 Salesforce 或外部系统的性能产生负面影响。与所有限制规则相同,建议仅使用编入索引的对象字段,特别是在记录条件中。
重要- 编辑或删除外部对象的限制规则将导致额外调用数据库,这将在每次呼叫时增加外部数据源的成本。
- 在为外部对象记录启用搜索时,搜索每次需要额外调用数据库。通过关闭搜索外部对象记录,避免额外费用。
- 不支持在记录条件中使用外部 ID。
- 外部对象的限制规则不包括组织范围的默认值或共享机制。
- 对象管理器不会显示外部对象。要导航到外部对象,从设置中,在快速查找框中输入外部数据源,然后选择外部数据源。从此页面的列表视图中,选择外部对象。
- 建议在外部对象上禁用搜索。
备注 您也可以在设置的最近使用列表中找到外部对象。
性能注意事项
- 构建限制规则是为了以一种性能化的方式支持共享需求。数据量和架构也是影响规则性能的因素。
- 要测试规则的性能影响,将记录条件带到您选择的 API 客户端并运行查询。如果对于一个给定的用户来说很快,那么这个规则可能会有效地运行。对于具有大量数据的对象,记录筛选器的性能会增加 3% 到 5% 的开销。
- 如果性能不佳,隔离导致性能下降的字段。与 Salesforce 客户支持一起将字段编入索引。
本文章是否解决您的问题?
请与我们共享您的想法,以便我们进行改进!
