SPO-ASSIST

How to Check Unique Permissions on a SharePoint Online List or Site

"Why can't this person see this file?" is one of the most common SharePoint admin tickets — and it almost always comes down to broken permission inheritance somewhere in the chain. Here's how to actually check it.

What "unique permissions" means

By default, lists and libraries inherit permissions from their parent site. When someone breaks that inheritance — usually to share a single document or restrict a sensitive folder — that item now has "unique permissions," separate from the rest of the site. These are the spots that cause access confusion, because a change at the site level no longer applies there.

Method 1: Check via the UI (per item)

  1. Open the list or library.
  2. Select the item, click Share, then Manage access.
  3. If it says "This item has unique permissions" (rather than "inherits from [parent]"), inheritance has been broken here.

The problem: there's no bulk view. You'd have to check this item by item, which doesn't scale past a handful of files.

Method 2: PnP PowerShell (bulk check)

Get-PnPListItem -List "YourLibrary" | ForEach-Object {
    $hasUnique = Get-PnPProperty -ClientObject $_ -Property "HasUniqueRoleAssignments"
    if ($hasUnique) { Write-Host $_.FieldValues["FileLeafRef"] }
}

This is the reliable way to audit an entire library for broken inheritance, but it requires a PowerShell session connected to the site and isn't something you'll run mid-conversation with a user asking "why can't I see this."

Method 3: REST API

https://yourtenant.sharepoint.com/sites/yoursite/_api/web/lists/getbytitle('YourList')/items?$select=HasUniqueRoleAssignments

Useful if you're building tooling around this, but overkill for a one-off check.

Method 4: One click on the page

For the common case — someone reports an access issue and you need to know right now whether this specific item has broken inheritance and who's actually on it — SPO-Assist shows unique permissions and current access directly on the page, without switching to PowerShell or a REST client.

Why this matters for cleanup

Sites accumulate unique permissions over time as people share individual files. Auditing for these periodically (via the PowerShell method above, for anything beyond a handful of items) is good hygiene — each unique permission is a spot that won't inherit future access changes, and a common source of "it worked last week" tickets.