控制对记录的访问权限
学习目标
完成本单元后,您将能够:
- 列出记录访问权限的四种控制方式。
- 分别描述使用四种记录级安全性控制的情况。
- 解释不同的记录控制之间如何交互。
- 设置组织范围共享默认设置,以控制对记录的访问权限。
记录级安全性
为准确控制数据访问权限,您可以允许特定用户查看特定对象中的特定字段,但限制用户可以查看的单个记录。
记录访问权限决定了对于简档中有访问权限的每个对象,用户可以查看和编辑哪些单个记录。首先,思考一下这些问题:
- 用户需要访问每个记录还是一部分记录?
- 如果需要访问部分记录,应该用什么样的规则来确定是否可以访问?
以我们的“招聘”应用程序为例,假设您创建了一个名为 Recruiter 的新简档,向招聘人员提供其所需的对象级权限。您限制了删除招聘相关对象的权限,因此招聘人员永远无法删除这些对象。但是,向招聘人员授予创建、读取或编辑招聘对象的权限并不一定意味着招聘人员可以读取或编辑招聘对象中的每个记录。这是由两个重要概念造成的结果:
- 始终根据对象级、字段级和记录级权限的组合来评估记录的权限。
- 当对象级权限与记录级权限产生冲突时,以最严格的设置为准。
这意味着,即使您对简档授予招聘对象的创建、读取和编辑权限,如果单个招聘记录的记录级权限更严格,则这些权限即是定义招聘人员可以访问的内容的规则。然而,您将看到,记录级权限提供了层层增加的访问权限,因此知道该注意哪些记录级权限对于了解用户的访问权限级别很重要。
您可以通过四种方式控制记录级访问权限。按升序列出访问权限。使用组织范围默认设置,将数据锁定到最严格的级别,然后使用其他记录级安全性工具,按需向已选择的用户授予访问权限。
-
组织范围默认设置指定了用户对彼此记录的默认访问权限级别。
-
角色层次结构确保经理对相同的记录具有和其下属相同的访问权限。层次结构中的每个角色代表一个用户或一组用户需要的数据访问权限级别。
-
共享规则让您可以自动允许特定用户组采用例外的组织范围默认设置,使他们能够访问其他人的记录或通常情况下无法查看的记录。
-
手动共享允许记录所有者向无法通过其他方式访问记录的用户提供读取和编辑权限。
所有数据类型的可见性和访问权限均由上述安全性控制的相互作用决定,并基于以下关键原则。
- 用户对所有对象的基本线权限由其简档决定。
- 如果用户被分配了权限集,则权限集与简档一起决定基本权限。
- 用户对非本人所有的记录的访问权限由组织范围默认设置决定。
- 如果组织范围默认设置低于公用读/写,您可以使用角色层次结构对特定角色启用访问权限。
- 您可以使用共享规则扩展对其他用户组的访问权限。
- 每个记录的所有者可通过使用记录上的“共享”按钮手动与其他用户共享单个记录。
您已了解如何使用简档和权限集配置对象级和字段级访问权限。接下来,我们将详细了解各种记录级安全性控制。
组织范围共享
组织范围默认设置指定了最受限制的用户应该具有的基本访问权限级别。使用组织范围默认设置锁定数据,然后使用其他记录级安全性和共享工具(角色层次结构、共享规则和手动共享)向需要数据的用户开放数据。
对象权限决定了对象中所有记录的基本访问权限级别。组织范围默认设置修改了对非用户本人所有的记录的权限。可对各类对象分别设置组织范围共享设置。
组织范围默认设置向用户授予的访问权限不会比用户通过对象权限所获得的权限多。
要确定应用所需要的组织范围默认设置,先针对每个对象思考一下这些问题:
- 哪个用户是该对象最想限制的用户?
- 该对象中是否会有此用户不可以查看的实例?
- 该对象中是否会有此用户不可以编辑的实例?
根据您的答案,您可以将该对象的共享模型设置为这些设置中的一项。
专用
仅记录所有人和更高级别的用户可以查看、编辑和报告这些记录。
公用只读
所有用户可查看和报告记录,但只有所有者以及层次结构中该角色以上的用户可以编辑这些记录。
公用读/写
所有用户可以查看、编辑和报告所有记录。
由父级控制
如果用户可以查看、编辑或删除某个记录的父级记录,便可以查看、编辑或删除该记录。
当对象的组织范围共享设置为专用或公用只读时,管理员可通过设置角色层次结构或定义共享规则授予用户对记录的其他访问权限。共享规则仅可用于授予其他访问权限,不可用于在组织范围共享默认设置以外限制对记录的访问权限。
接下来,我们将针对“招聘”应用中的“职位”对象回答上面的问题。
哪个用户是该对象最想限制的用户?
普通员工简档成员。他们只能查看职位。
该对象中是否会有此用户不可以查看的实例?
没有。虽然最低和最高工资字段对普通员工不可见,但他们仍然可以查看所有职位记录。
该对象中是否会有此用户不可以编辑的实例?
应该使用。普通员工不可以编辑任何职位记录。
由于存在普通员工不可以编辑的实例,因此“职位”对象的共享模型应该设置为“公用只读”。通过对其他招聘对象重复进行这一步骤,可以轻松得出合适的组织范围默认设置。“普通员工”简档用户是每个对象最希望限制的用户,并且存在特定员工无法查看的候选人、职位申请和评价记录。因此,“候选人”、“职位申请”和“评价”对象的共享模型应设置为专用。
设置组织范围共享默认设置
使用组织范围默认设置指定最受限制的用户应该具有的基本访问权限级别。
- 在“设置”中的“快速查找”框内输入共享设置,然后选择共享设置。
- 单击“组织范围默认设置”区域中的编辑。注意:一些标准对象使用不同的组织范围默认选项。自定义对象组织范围默认选项包括“专用”、“公用只读”或“公用读/写”。
- 为每个对象选择默认内部访问权限和默认外部访问权限。
- 要使用层次结构禁用自动访问权限,为没有“由父级控制”默认访问权限的所有自定义对象取消选择使用层次结构授予访问权限。
默认情况下,角色层次结构自动向层次结构中记录的所有者以上的用户授予对记录的访问权限。将对象设置为专用后,记录将仅对记录所有者以及角色层次结构中记录所有者以上的用户可见。您可以通过使用层次结构授予访问权限复选框禁用层次结构中记录所有者以上用户对自定义对象记录的访问权限。如果为自定义对象取消选择此复选框,则只有通过组织范围默认设置获得访问权限的记录所有者和用户才能获得对这些记录的访问权限。
即使取消选择使用层次结构授予访问权限,一些用户(如拥有“查看所有”和“修改所有”对象权限的用户,以及拥有“查看所有数据”和“修改所有数据”系统权限的用户)仍可以访问不是自己的记录。
使用组织范围默认设置锁定数据后,形成的设置对于某些用户来说可能限制性过高。您可以通过其余记录级安全性控制(角色层次结构、共享规则及手动共享),选择性地向有需要的特定员工开放记录访问权限。
了解详细信息...
Apex 托管共享允许开发人员以编程方式共享与自定义对象关联的记录。当您对任何自定义对象使用 Apex 托管共享时,只有拥有“修改所有数据”权限的用户可以添加或更改该自定义对象记录的共享,即使记录所有者进行更改,共享访问权限仍保持不变。有关详细信息,请参阅 Apex 共享。
资源