with sharing 和 without sharing

 
■Salesforce系统程序执行有两种运行mode
①system mode:可以对任何object,任何数据,任何字段进行CURD
②user mode:只对自己有权限的object,有权限的数据,有权限的字段进行CURD
※Apex默认是system mode运行
 
■Apex有两种keyword修饰符
①with sharing 强制sharing rule 有效,使用户只能看到自己有权限看到的数据
⇒字段级别权限依然是system mode,即对无权限的字段也可以CURD
②without sharing强制sharing rule 无效,使用户能看到任何object的任何数据。

 
■查看当前apex运行mode

调用级别没有keywordwithout sharing with sharing
最上层system modesystem modeuser mode
不是最上层和上层保持一致system modeuser mode


最后,需要记住的是
1,Trigger是system mode运行,无法添加keyword。
Trigger的Handler class可以通过添加with sharing来实现user mode。
 
2,Anonymous Block 是user mode。

 
 

此条目发表在技术分享分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注