课程章节介绍
同学们,我们来看这一页内容。它讲的是Apex类在运行时的一个关键概念——默认的用户模式。
简单说,当你写Apex代码去查询或操作数据时,Salesforce会尊重当前用户对对象的权限,还有字段级别的安全设置。也就是说,用户能看到哪些字段,代码就只能访问哪些字段;用户没有权限看到的,代码也拿不到。
那在做“描述调用”的时候,比如你想获取一个对象有哪些字段、字段的标签、关系等等,如果对象或字段受到权限限制,系统就不会返回全部的信息,而是只返回当前用户有权限看到的那部分。
还有一个点,就是除了用我们熟悉的Schema.getGlobalDescribe()这些静态方法外,你还可以调用 Schema.describeSObjects() 这个方法,它接收的是你指定对象的API名称列表。调用之后会返回一个叫做 DescribeSObjectResult 数组的结果。这个结果里包含了对象的各种信息:比如标签、字段数量、是不是自定义对象、有哪些子关系等等。用这种方式来描述对象,同样会跟随用户模式的权限规则。
所以,你需要记住的就是:Apex默认在用户模式下运行,一切数据访问和描述信息都受权限控制。如果你想获取不受权限限制的全量描述信息,那就需要在类上标记为 without sharing 或者用系统模式来调用。但大部分场景下,默认的用户模式正是为了保证安全。
这样讲清楚了吗?有问题可以随时提出来。
关键词
Apex
Salesforce
Developer Guide