用語解説
with sharing
-
共有ルールを適用する
-
適用されるのはログインユーザの共有ルール
without sharing
-
共有ルールを適用しない
-
呼び出し元のクラスがwith sharingを使っていても、without sharingを宣言しているクラスには共有ルールが適用されない
inherited sharing
- 呼び出し元のクラスの共有モードに従う
忘れがちな特徴
各記法での共有モード
-
メソッド
- 定義されているクラスの共有モードに従う
-
内部クラス
- コンテナクラスから継承しない
-
継承クラス
- 親→子へ継承される
-
トリガ
-
sharingキーワードが指定できない
-
デフォルトでwithout sharingが適用される
-
sharingキーワードを省略したとき
自身のキーワードが省略されている場合
-
他クラスからの呼び出しなし
- without sharingが適用される
-
他クラスからの呼び出しあり
- 呼び出し元の共有ルールに従う
inherited sharingを宣言していて、呼び出し元クラスのキーワードが省略されている場合
- with sharingが適用される
匿名ApexやConnect in ApexでApexを実行するとき
sharingキーワードに関わらず、ログインユーザの共有ルールが適用される
参考文献
Using the with sharing, without sharing, and inherited sharing Keywords