Salesforceの運用において、「ファイルの削除」は非常にセンシティブな操作です。
これまでは、他人が作成したファイルを削除するために「すべてのデータの編集」という非常に強力な権限が必要とされるケースが多く、セキュリティ設計上の悩みとなっていました。

Spring ’26のアップデートでは、この課題を解決する「ファイル削除権限の分離」が進んでいます。
本記事では、新機能の概要と、意図しないファイル削除を防ぐために「誰が削除権限を持っているか」を特定する具体的な手順(設定画面・SOQL)について解説します。

Spring ’26新機能:ファイル削除権限の柔軟化とは

これまで、レコードに添付されたファイル(Salesforce Files)を管理・整理したい場合、システム管理者は担当者に強大な権限を渡すか、管理者自身が作業を代行する必要がありました。

これまでの課題

自分以外が所有するファイルを削除するには、システム権限「すべてのデータの編集 (Modify All Data)」が必要でした。しかし、これを与えるとファイル以外の全レコードの編集・削除も可能になるため、権限を与えるリスクが高すぎました。

そのため、従来はApexなどでファイル権限を削除するためのロジックを作成し、特定の対象にそのカスタム削除ボタンを表示するなどが一般的に行われていました。

ただし、上記実装ではコード開発などを行う必要があるため、実装コストが高かったのです。

Spring ’26での変更点

新しいシステム権限「Salesforceファイルの削除 (Delete Salesforce Files)」を活用することで、権限の分離が可能になりました。
これにより、「すべてのデータの編集」権限を付与することなく、特定の運用担当者に対して「アクセス権のあるファイルの削除」のみを許可できるようになります。最小権限の原則(Least Privilege)に基づいた、よりセキュアな設計が可能です。

ファイル削除が可能なユーザーの仕組み(3つのパターン)

「意図せずファイルが削除された」「誰が削除できるのか把握したい」という場合、確認すべき対象は以下の3パターンのいずれかに該当するユーザーです。

1. ファイル所有者(File Owner)

もっとも基本的なケースです。Salesforceの標準仕様として、ファイルをアップロードした本人(所有者)は、特別な権限設定がなくても自身のファイルを削除・編集できます。

2. 「すべてのデータの編集」権限を持つユーザー(Spring’26以前)

システム管理者プロファイルや、強力な権限セットを割り当てられたユーザーです。この権限を持つユーザーは、組織内のほぼすべてのデータを操作できるため、当然ファイル削除も可能です。

プロファイルのシステム権限でのすべての編集の確認方法

また、オブジェクト単位で設定する「すべての編集」「編集」権限もあります。こちらは、該当オブジェクトのレコードに添付されたファイルの紐づけを削除できるということになります(ファイル自体は削除できません)。

レコードとファイルの紐づきは「そのレコードを編集できるか」によって紐づきを解除できるかが決定しています。

※各オブジェクトごとのファイルとの紐づき削除権限は、プロファイル画面にて以下のように確認できます(すべての編集の場合は添付のように確認し、編集は違う列を確認します)。

プロファイル上ですべての編集権限を確認する方法

※各オブジェクトごとのファイルとの紐づき削除権限は、権限セット画面にて以下のように確認できます(すべての編集の場合は添付のように確認し、編集は違う列を確認します)。

権限セット上ですべての編集権限を確認する方法
3. 「Salesforceファイルの削除」権限を持つユーザー(新機能Spring’26以降)

今回のアップデートで注目すべき層です。「すべてのデータの編集」権限は持っていないものの、この個別権限が付与されているため、参照可能なファイルの削除が可能になっているユーザーです。

Spring’26以降の削除権限を持つユーザーの特定・確認方法

自社組織で「誰が強力なファイル削除権限を持っているか」を棚卸しする方法を紹介します。

設定画面での確認手順

少数のユーザーや特定の権限セットを確認する場合に適しています。

  1. [設定] > [ユーザー] > [権限セット](またはプロファイル)を開きます。
  2. 確認したい権限セットを選択し、[システム権限]をクリックします。
  3. 一覧の中に「Salesforce ファイルの削除」(または「すべてのデータの編集」)にチェックが入っているか確認します。
  4. [割り当ての管理]ボタンを押すと、その権限が付与されているユーザー一覧が表示されます。
SOQLを使用した一括特定方法

開発者コンソールなどを使用して、権限を持つユーザーをリストアップする方法です。人数が多い場合や、監査目的で一覧化したい場合に有効です。

以下のクエリは、「Salesforceファイルの削除」権限(PermissionsDeleteSalesforceFiles)が有効になっている権限セットまたはプロファイルが割り当てられているユーザーを抽出します。

SELECT Assignee.Name, Assignee.Profile.Name, PermissionSet.Name, PermissionSet.Label
FROM PermissionSetAssignment
WHERE PermissionSet.PermissionsDeleteSalesforceFiles = true

※注意: PermissionsDeleteSalesforceFiles はAPI参照名の例です。組織のバージョンにより名称が異なる場合があります。もしエラーになる場合は、PermissionSet オブジェクトの項目一覧から正確なAPI名を確認してください。

また、「すべてのデータの編集」権限を持つユーザーを一括確認する場合は、以下のようになります。

SELECT Assignee.Name, PermissionSet.Label
FROM PermissionSetAssignment
WHERE PermissionSet.PermissionsModifyAllData = true

これらを定期的にチェックすることで、意図しないユーザーに削除権限が渡っていないか監視することができます。

エビデンス・参考ナレッジ

本記事の作成にあたり、以下のSalesforce公式情報を参照しています。

  • Salesforce Help: User Permissions and Access
    https://help.salesforce.com/s/articleView?id=platform.permissions_about_users_access.htm&type=5
    権限セットおよびプロファイルの基本的な仕組みと、ファイル操作に関する権限の詳細について記載されています。
  • Salesforce Release Notes (Spring ’26)
    https://help.salesforce.com/s/articleView?id=release-notes.salesforce_release_notes.htm&release=204&type=5
    ファイルおよびコンテンツの管理に関するセキュリティアップデートセクションを参照。

投稿者 てきとうSE

普段はシステムエンジニアとして、SalesforceなどのSaaS製品と日々向き合っています。

コメントを残す

名前は任意です。未入力の場合は「匿名」として投稿されます。