2021/05/24

Salesforce without sharingの仕様を理解しよう

 
  

Salesforce without sharingとは

Salesforce without sharingとはApexクラス内で利用できるキーワードです。 ApexクラスはSalesforce内で使用できるプログラミング言語ですが、Apexクラス内でwithout sharingのキーワードを使用し、共有設定や共有ルールを強制的に実行させないように指定することができます。 言い換えると、without sharingのキーワードが指定されているApexクラスは、システム権限で実行させることができます。

Salesforce without sharingの記述方法

ではwithout sharingを設定したい場合、どのように記述すれば良いのでしょうか。実際にSalesforceのApexクラス内でキーワードを指定する際の記述方法を解説します。

without sharing

Apexクラス内でwithout sharingを使い共有設定を強制実行されないようにするには、クラスの宣言時にキーワードを使用します。例えば以下のような形で記述します。 public without sharing class SampleClassA { // Code here }

with sharing

反対に、現在のユーザの共有ルールを適用させることを明示的に指定する場合はキーワードとしてwith sharingを記載します。 public with sharing class SampleClassB { // Code here }

Salesforce without sharing使用時の考慮事項

Salesforce without sharingのキーワードを使用する際の注意事項を見ていきましょう。 大前提として、組織の共有設定や共有ルールで設定されている内容が、組織のアクセス権の定義を構成しており、without sharingはそのルールを適用させないための例外的な処理です。 したがって、通常はApexクラスの実行ユーザが意図しない不要なレコードにアクセスするのを防ぐためにもwithout sharingは使用しないようにしましょう。 特にApexクラスを使用した処理を実行する際に、うまくレコードが取得できないという理由でwithout sharingを使うといった使用方法は行わず、まずは共有設定の変更によりアクセスできるように設計・開発しましょう。

おわりに

いかがでしたでしょうか。今回はSalesforceのwithout sharingのキーワードについて解説いたしました。 Without sharingはSalesforceのApexクラス内で使用するキーワードのことで、使用することで組織の共有設定を無視しシステム権限でプログラムを実行することができます。 ただし、使用することで共有設定を無視し、意図しないデータへのアクセスができるようになってしまう可能性もあるため、without sharingのキーワードを利用する際は組織の共有設定や共有ルールを合わせて確認しながら行うようにしましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】