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

AccessLevel クラス

システムモードやユーザーモードなど、Apex データベース操作を実行するときのさまざまなモードを定義します。

名前空間

System

使用方法

デフォルトでは、Apex コードはシステムモードで実行されます。つまり、コードを実行しているユーザーよりも非常に上位の権限で実行されます。システムモードでは、現在のユーザーのオブジェクト権限と項目レベル権限が無視され、クラスの sharing キーワードでレコード共有ルールが制御されます。ユーザーモードでは、現在のユーザーのオブジェクト権限、項目レベルのセキュリティ、および共有ルールが適用されます。

System.Database および System.Search クラスの DML メソッドの多くには、実行モードを指定する accessLevel パラメーターが含まれています。

例

この Apex コードを実行するユーザーに Account オブジェクトへの更新アクセス権がない場合、Database.insert() メソッドはエラーを返します。

一方、次の例は、システムモードで実行するメソッドを示しています。挿入が成功するかどうかは、Apex コードを実行するユーザーに Account オブジェクトへの作成アクセス権があるかどうかによりません。

AccessLevel のメソッド

AccessLevel のメソッドは次のとおりです。

withPermissionSetId(permissionSetId) (開発者プレビュー)

権限セット内の指定された権限で実行されるデータベースと検索の操作をサポートします。Apex は、指定された権限セットと実行中のユーザーの権限に従って項目レベルセキュリティ (FLS) とオブジェクト権限を適用します。

機能は、開発者プレビューとして利用できます。機能は、Salesforce がドキュメント、プレスリリース、または公式声明で正式リリースを発表しない限り、正式リリースされません。すべてのコマンド、パラメーター、およびその他の機能は、通知の有無に関わらずいつでも変更または廃止される可能性があります。これらのコマンドまたはツールを使用して開発した機能を本番環境に実装しないでください。「ユーザーモードでの権限セット」機能に関するフィードバックや提案は、Trailblazer Community に投稿してください。

メモ

この機能は、ApexUserModeWithPermset 機能が有効になっているスクラッチ組織で使用できます。この機能が有効になっていない場合、この機能を含む Apex コードは、コンパイルすることはできても、実行することはできません。

署名

public System.AccessLevel withPermissionSetId(String permissionSetId)

パラメーター

permissionSetId
型: String
ユーザーモード DML 操作の実行中は、実行中のユーザーの権限に加え、指定された権限セット内の権限が適用されます。

例

次の例では、権限セットを指定して AccessLevel.withPermissionSetId() メソッドを実行し、カスタムオブジェクトを挿入します。

AccessLevel のプロパティ

AccessLevel のプロパティは次のとおりです。

SYSTEM_MODE

現在のユーザーのオブジェクト権限と項目レベル権限が無視される実行モードです。レコード共有ルールは、クラスの sharing キーワードで制御されます。

署名

public System.AccessLevel SYSTEM_MODE {get;}

プロパティ値

型: System.AccessLevel

USER_MODE

現在のユーザーのオブジェクト権限、項目レベルのセキュリティ、および共有ルールが適用される実行モード。

署名

public System.AccessLevel USER_MODE {get;}

プロパティ値

型: System.AccessLevel