この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

データアクセス制御

Lightning Platform は、データ共有ルールを広範囲に使用します。各オブジェクトには権限があり、ユーザーが読み取り、作成、編集、削除できる共有設定がある場合があります。これらの設定は、すべての標準コントローラーを使用する場合に強制されます。

Apex クラスを使用する場合、組み込みユーザー権限、および項目レベルのセキュリティ制限は実行時に重視されません。デフォルトの動作では、Apex クラスがすべてのデータを読み込み、更新できます。これらのルールは強制されないため、Apex を使用する開発者は、ユーザー権限、項目レベルのセキュリティ、デフォルト設定などで通常は非表示となる機密データが不用意に公開されないようにする必要があります。たとえば、次の Apex 擬似コードについて考えます。
1public class customController { 
2    public void read() { 
3        Contact contact = [SELECT id FROM Contact WHERE Name = :value]; 
4    } 
5}
この場合、現在ログインしているユーザーにこれらのレコードを表示する権限がない場合でも、すべての取引先責任者レコードが検索されます。解決策として、クラスを宣言する場合、次のように修飾キーワードの with sharing を使用します。
1public with sharing class customController { 
2    . . . 
3}

with sharing キーワードを使用すると、プラットフォームはすべてのレコードに完全アクセス権限を付与するのではなく、現在ログインしているユーザーのセキュリティ共有権限を使用します。