salesforce developer console 匿名执行是以什么身份执行的

在 Salesforce 开发者控制台中的"匿名执行"代码(Anonymous Apex)是以当前登录用户的身份执行的。执行时会根据该用户的权限、共享设置和数据访问权限来决定代码的实际访问范围。

因此,在匿名执行中:

  • 代码会遵守当前用户的数据访问控制(Sharing Rules),只能访问当前用户有权限查看或编辑的数据。
  • 如果需要以"系统模式"执行(忽略共享规则),可以在匿名 Apex 中使用 without sharing 关键字声明一个类并在其中执行相关逻辑。

如果管理员账号对某个字段不可见,那么在开发者控制台的匿名执行中也无法访问该字段。这是因为匿名执行会遵循当前用户的字段级别安全性(Field-Level Security,FLS),即便是管理员账号,如果该字段在配置中对管理员不可见,匿名执行也无法访问。

解决方案

如果需要在匿名执行中访问受限字段,可以尝试以下方法:

  1. 检查和调整字段级别安全性:确认管理员账号是否具备该字段的读取或写入权限。
  2. 在系统模式下执行代码 :将需要的逻辑封装到 without sharing 的类方法中,并通过执行匿名 Apex 调用该方法。注意,这仅忽略共享规则,但不忽略字段级别的安全性。因此,仍然需要确保管理员对该字段的访问权限已被授予。
  3. 权限集或配置文件更新:直接为管理员配置所需字段的访问权限。这样,匿名执行时可以直接访问这些字段。

系统模式 下执行代码时,Salesforce 会忽略共享规则(Sharing Rules) ,但不会忽略字段级别安全性(Field-Level Security, FLS)。因此,即使代码运行在系统模式下,如果当前用户对某个字段没有可见权限,系统模式下的代码依然无法访问该字段。

关键点总结

  • 系统模式:忽略共享规则,允许代码访问所有记录数据,但不忽略字段级别安全性。
  • 字段级别安全性(FLS):即使在系统模式下,字段级别安全性仍然生效,无法访问当前用户无权限查看的字段。

解决方案

如果希望在系统模式下访问特定字段,可以考虑:

  1. 检查权限配置:确保管理员或执行代码的用户有该字段的访问权限。
  2. 绕过字段级别安全性 :在某些情况下,可以在自定义接口(如 REST API)中,通过 Schema.DescribeFieldResult 检查字段权限并动态执行逻辑。

不过存在一种情况,即在系统模式下执行的 Apex 代码可以忽略字段级别安全性(FLS) 。在 Salesforce 中,触发器(Triggers)批处理(Batch Apex)计划任务(Scheduled Apex) 以及某些 非匿名执行 的 Apex 类会在系统模式下运行,并能够访问所有字段和记录数据,而不受字段级别安全性的限制。

因此,匿名执行(Anonymous Apex) 是遵循当前用户的字段权限的,但其他在系统模式下执行的 Apex(如触发器和批处理)可以直接访问字段,即使当前用户没有权限。

区分匿名执行与系统模式下的执行

  1. 匿名执行(Anonymous Apex):始终遵循当前用户的字段级别安全性。
  2. 触发器、批处理和计划任务:在系统模式下运行,不受字段级别安全性影响,能够访问所有字段。

示例场景

  • 如果在开发者控制台使用匿名执行代码测试访问字段权限,则会受到字段级别安全性限制。
  • 但在触发器或批处理类中,即使用户没有对某个字段的访问权限,代码依然可以访问并操作该字段。

因此,如果希望绕过字段级别安全性,可以通过触发器或批处理类的方式来执行逻辑,这些运行在系统模式下的代码不受字段权限限制。

相关推荐
倔强的石头_7 分钟前
生产环境排坑实录:SQL 标量子查询的“静默杀手”与优化器的智能推演
数据库
ishangy23 分钟前
集装箱箱底连锁检测:AI防爆摄像机保障智慧港口吊装安全
人工智能·安全·视觉检测·智慧港口·ai视频监控
星幻元宇VR31 分钟前
VR消防安全体验屋|沉浸式科技助力消防安全科普
人工智能·科技·学习·安全·vr
长谷深风11139 分钟前
Java并发编程:线程安全与多线程实战指南【个人八股】
java·安全·线程·进程·juc·并发与并行·上下文切换(性能影响因素)
Navicat中国1 小时前
使用 SSL/TLS 安全连接数据库
数据库·安全·ssl
yyuuuzz1 小时前
谷歌云使用的几个常见注意事项
运维·服务器·网络·安全·web安全·云计算·aws
上海云盾-小余1 小时前
业务层 CC 攻击精准研判:行为识别与轻量化拦截方案
运维·服务器·安全·架构
heimeiyingwang1 小时前
【架构实战】MySQL主从复制与读写分离:数据库高可用架构
数据库·mysql·架构
Cosolar1 小时前
2026年全球向量数据库技术全景与架构演进深度解析报告
数据库·人工智能·架构·agent·智能体