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. 触发器、批处理和计划任务:在系统模式下运行,不受字段级别安全性影响,能够访问所有字段。

示例场景

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

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

相关推荐
光影62715 分钟前
MySQL基础入门
数据库·笔记·sql·学习·mysql·学习方法
qetfw43 分钟前
CentOS 7 搭建 MariaDB 数据库服务
linux·数据库·centos·mariadb
光影6271 小时前
MySQL 进阶篇 —— 事务 / 外键 / 索引 / 高级查询
数据库·笔记·sql·学习·mysql
爬也要爬着前进1 小时前
redis哨兵模式搭建
数据库·redis·bootstrap
小月土星1 小时前
(实战篇)RAG-demo 深度解析:162行代码中的检索增强生成全景 (含Top-k法)
javascript·数据库·llm
智灵鸟科技2 小时前
封闭网络怎么安全地接外部能力:三条通道穷举、威胁封堵矩阵与残余风险
网络·安全·矩阵
谪星·阿凯2 小时前
CTF Web 解题完全指南:从 PHP 弱类型到 SSTI 模板注入的实战方法论
前端·安全·php·ctf web
10岁的博客3 小时前
DevEco Code 的 Plan+Build 模式:审方案再执行的技术深度解析
大数据·数据库·人工智能
HackTwoHub3 小时前
等级保护现场测评系统重磅更新,支持 AI 接入,可录入全品类资产清单,自动化巡检核查,批量导出测评归档文件
运维·人工智能·安全·web安全·网络安全·自动化·系统安全
buhuizhiyuci3 小时前
【算法篇】位运算 —— 基础篇
java·数据库·算法