Apex Security and Sharing Model

DEX455 - Apex 安全与共享模型完全指南

📄 第 212 页 🎬 视频课程

课程章节介绍

咱们今天聊聊 Apex 的安全模型,这可是 Salesforce 开发里非常核心的一块。你可以把它想象成给代码上了三道锁,确保数据不会在不该被看见的时候泄露出去。 这三道锁就是记录级安全、字段级安全和对象级安全。记录级安全管控的是“谁能看到哪一条数据”,比如你只能看到自己的客户,看不到别人的。字段级安全管控的是“能看到哪个字段”,比如虽然你有机会看到这条客户记录,但可能看不到客户的手机号。对象级安全呢,管的是“你连这个对象本身能不能访问”,比如你压根就没有“合同”这个对象的访问权限,那一条合同都看不见。 从 API 版本 67.0 开始,Apex 的运行方式有了一个很关键的变化:它默认就在用户模式下执行了。也就是说,你的代码现在会自动遵守当前登录用户的权限,包括记录级和字段级安全,不用你再特意去声明。以前我们经常要纠结类的运行是“有共享”还是“无共享”,现在如果类上没有显式写 with sharing 或者 without sharing,它就跟 with sharing 一样运行。这让我们少操很多心。 还有一个注意点,以前的 WITH_SECURITY_ENFORCED 这个关键字已经弃用了,现在改成了 WITH_USER_MODE,你后面写 SOQL 查询的时候会用到它,显式告诉系统要按用户模式执行。 这一章我们会把这三层安全都掰开揉碎来讲,还会说到类本身的安全(也就是类访问权限),怎么在代码里用编程共享来灵活控制共享模式,以及一些让你代码更安全的最佳实践。这样以后你写的 Apex,既灵活又不会闯祸。

关键词

Apex Salesforce Developer Guide