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

stripInaccessible メソッドによるセキュリティの適用

stripInaccessible メソッドを使用して、項目レベルおよびオブジェクトレベルのデータ保護を適用します。このメソッドを使用してクエリおよびサブクエリの結果からユーザがアクセスできない項目およびリレーション項目を除外できます。また、このメソッドを使用して、DML 操作の前にアクセスできない sObject 項目を削除して例外を回避し、信頼されないソースから非シリアライズされた sObject を適切な状態にすることもできます。

可能な場合は、Equality の会社の値に一致するように、含めない用語を変更しました。顧客の実装に対する影響を回避するために、一部の用語は変更されていません。

重要

項目およびオブジェクトレベルのデータ保護には、Security および SObjectAccessDecision クラスを介してアクセスします。アクセスの検査は、作成、参照、更新、または更新/挿入という指定された操作のコンテキストで、現在のユーザの項目レベルの権限に基づいて行われます。Security.stripInaccessible() メソッドは、ソースレコードに現在のユーザの項目レベルセキュリティチェックに失敗した項目がないか確認します。また、このメソッドは、現在のユーザがアクセスできない参照項目や主従関係項目のソースレコードをチェックします。このメソッドによって、sObjects の戻りリストが作成されます。これは、現在のユーザがアクセスできない項目が除外されている以外は、ソースレコードと同じです。getRecords メソッドによって返される sObject には、stripInaccessible メソッドの sourceRecords パラメータ内の sObject と同じ順序でレコードが含まれています。

開発者プレビューの機能である Security.stripInaccessible() は、権限セット ID をパラメータとして取得し、指定された権限セットと実行中のユーザの権限に従って項目レベルおよびオブジェクトレベルのアクセス権を適用します。

結果に DML を実行したときに問題が発生しないように、ID 項目は stripInaccessible メソッドによって削除されることはありません。

メモ

削除されたアクセスできない項目を特定するには、SObject.isSet() メソッドを使用できます。たとえば、戻りリストには取引先責任者オブジェクトが含まれており、カスタム項目 social_security_number__c はユーザからアクセスできません。このカスタム項目は、項目レベルのアクセスチェックに失敗するため、項目が設定されず、isSetfalse を返します。

stripInaccessible メソッドでは、AggregateResult SObject はサポートされません。ソースレコードの種別が AggregateResult SObject の場合は、例外が発生します。

メモ

ユーザオブジェクトでオブジェクト権限と項目権限を適用し、Experience Cloud サイトが含まれる組織でユーザの個人情報を他のユーザに非表示にするには、「オブジェクト権限と項目権限の適用」を参照してください。

stripInaccessible メソッドを使用可能ないくつかの例を次に示します。

このコード例では、アクセスできない項目がクエリ結果から削除されます。キャンペーンデータの表示テーブルには、常に BudgetedCost を表示する必要があります。ActualCost は、この項目を読み取る権限を持つユーザのみに表示される必要があります。

このコード例では、アクセスできない項目がサブクエリ結果から削除されます。Contacts オブジェクトの Phone 項目を参照する権限を持たないユーザ。

このコード例では、DML 操作の前にアクセスできない項目が sObject から削除されます。取引先の Rating を作成する権限を持っていないユーザでも、取引先を作成できます。このメソッドでは、Rating は設定されず、例外は発生しません。

このコード例では、信頼されないソースからのデシリアライズされた sObject をサニタイズします。ユーザには、取引先の AnnualRevenue を更新する権限がありません。

次のコード例では、アクセスできないリレーション項目がクエリ結果から削除されます。ユーザには、Account__c 項目 (MyCustomObject__c から Account へのルックアップ) を挿入する権限がありません。