2026-06-08 · 6 min read
Why Can This User See This Record?
The #1 question an admin gets — and why answering it by hand means clicking through dozens of Setup pages. Here is the fast way.
It is the most common ticket in any admin's queue: "Why can this person see this record?" or its evil twin, "Why can't they?" The question sounds simple. Answering it is not, because access in Salesforce can originate from almost anywhere.
Why it is hard
A single user's access to a single record can come from any of these, alone or in combination:
- their profile (object permissions, View All / Modify All, View All Data / Modify All Data)
- any number of assigned permission sets
- a permission set group they belong to
- a muting permission set that subtracts from a group
- record ownership
- the role hierarchy rolling access upward
- sharing rules (owner-based or criteria-based)
- account, opportunity, or case teams
- a one-off manual share
- implicit parent-child sharing you cannot turn off
To answer the question manually, you open the user, read their profile, open every permission set, open every group, check ownership, walk the role hierarchy, scan the sharing rules, and finally open the record's sharing detail. For a real org this is twenty minutes of clicking — per question. (For the full breakdown of these layers, see The 10 layers of record access.)
The manual trace
If you do it by hand, work top-down and stop at the first thing that grants access:
The trouble is that each of those checks is a different Setup screen, and "the first thing that grants access" is exactly what you do not know going in.
The one-click answer
This is the entire reason Explain Access and Permission Chain exist in SFDC Police. Point them at a user and a record (or a user and a permission) and you get the answer with the source attached:
- Explain Access returns a verdict — Granted or Denied — and the exact grant path. Not "they probably have a sharing rule," but "Granted via the
Modify All Datasystem permission on the System Administrator profile." - Permission Chain traces a permission back through the full dependency stack — Profile, Permission Sets, Permission Set Groups, and Muting Permission Sets — with source tracking at every step, so you see which assignment is responsible.
From there you can go further:
- Who Has Access runs the question in reverse: instead of "why can this user see this," ask "which users can see this field or object?" and get the list.
- Compare Users puts two users side by side and highlights exactly where their effective access differs, with export to CSV, JSON, TSV, or the clipboard for audit evidence.
Why source tracking matters
Knowing that access exists is half the answer. Knowing where it comes from is the half that lets you act. If a user can see a record through a sharing rule, you fix the sharing rule. If it is a stale permission set from a role they left a year ago, you remove the assignment. If it is View All Data they never should have had, that is a security finding, not a sharing tweak.
Without source tracking, every fix is a guess. With it, "why can this user see this record?" goes from a twenty-minute investigation to a single, citable answer.
Read the Permission Chain documentation, or learn how the same engine maps a record across all ten access layers in Access X-Ray.