Apexはデフォルトでシステムモードで動作するので、全オブジェクトに対して全レコードの編集が可能です。 そのため、例えば、ユーザがVisualforceページでレコードを検索する場合、ユーザが参照権限を持たないレコードについても、検索できてしまいます。 ユーザが参照可能なレコードのみを検索できるようにするには、Apexクラスにwith sharingキーワードを付与します。 これによって、ユーザに適用されているレコードレベルの共有ルールを強制実行することができます(ユーザモードでの動作)。 public with sharing class SharingClass { } ここで注意しなくてはならないのは、with sharingキーワードを付与しても、オブジェクトのCRUD権限、項目のアクセス権限は、システムモードのままということです。ユーザがアクセスできないはずのオブジェクトや項目に