← Back to Blog

SharePoint Online Permissions: Security Guide

Master SharePoint permissions by understanding permission levels, groups, external sharing controls, and PnP PowerShell audit scripts for governance.

SharePoint Online Permissions: Security Guide


Why SharePoint Permissions Matter More Than Ever



In the age of Microsoft 365 Copilot, your SharePoint permissions have never been more important. Copilot can surface any content a user has access to — which means overly permissive sharing configurations can expose sensitive data to the entire organization through AI-generated summaries and search results.

This guide covers everything you need to know about managing SharePoint Online permissions effectively: from understanding the built-in permission levels to building a permission matrix for your next security audit.

Understanding SharePoint Permission Levels



SharePoint Online comes with several built-in permission levels, each granting a specific set of capabilities:

Permission LevelWhat It AllowsCommon Use Case

|-----------------|---------------|----------------|
Full ControlEverything — manage permissions, delete sites, change settingsSite collection administrators

DesignCreate lists/libraries, edit pages, apply themes and bordersIntranet designers and site architects

EditAdd, edit, and delete list items and documentsTeam members who manage content

ContributeAdd, edit, and delete own items onlyUsers who create content but shouldn't modify others'

ReadView pages, list items, and download documentsStakeholders who need visibility

View OnlyView pages and items in the browser, but cannot downloadExternal reviewers and auditors


Pro Tip: Avoid creating custom permission levels unless absolutely necessary. They add management overhead and make auditing significantly harder. In most cases, the built-in levels cover every real-world scenario.


The Three Default SharePoint Groups



Every SharePoint site comes with three default groups. Understanding their intent is the foundation of good permission hygiene:

1. Site Owners (Full Control)


  • Who belongs here: 1-2 trusted administrators per site

  • What they can do: Everything — including managing permissions, deleting the site, and adding/removing other owners

  • Best practice: Keep this group as small as possible. Every person with Full Control is a potential risk vector


2. Site Members (Edit)


  • Who belongs here: Active contributors — the team that creates and manages content

  • What they can do: Add, edit, and delete items in all lists and libraries

  • Best practice: Use this for day-to-day content contributors. If someone only needs to add items but not delete others' work, consider Contribute instead


3. Site Visitors (Read)


  • Who belongs here: Consumers of information — stakeholders, leadership, cross-team viewers

  • What they can do: View content only, no editing

  • Best practice: This is the right group for most users. When in doubt, start with Read access and escalate only when requested


Permission Inheritance: The Golden Rule



SharePoint permissions flow downward through inheritance:

``
Site Collection
└── Site (inherits from collection)
└── Library (inherits from site)
└── Folder (inherits from library)
└── Document (inherits from folder)
`

The golden rule: Set permissions at the highest possible level and let inheritance do the work. This keeps your permission structure clean, auditable, and manageable.

When to Break Inheritance



Breaking inheritance creates a unique permission scope — the item no longer inherits from its parent. This is sometimes necessary, but should be done sparingly:

Legitimate reasons to break inheritance:
  • A "Confidential" folder within a shared library that only managers should access

  • An HR list containing sensitive employee data on a department site

  • A project workspace folder that external partners need access to


When you should NOT break inheritance:
  • Per-document permissions for individual files (use sensitivity labels instead)

  • Giving one person "Full Control" on a single folder (add them to the right group instead)

  • Creating complex permission trees more than 2 levels deep


The Hidden Cost of Broken Inheritance



Every broken inheritance point:
  • Creates a management burden — someone has to remember it exists and maintain it

  • Breaks the audit trail — you can't see the full picture from the site level

  • Causes confusion — users get "Access Denied" on items they expect to see

  • Slows SharePoint — the permission check engine has to evaluate unique permissions at each level


If you find yourself breaking inheritance frequently, it's a sign that your site architecture needs rethinking — not your permissions.

Copilot and AI-Era Permissions



With Microsoft 365 Copilot analyzing content across your tenant, permission hygiene has become a security-critical concern:

The Copilot Oversharing Problem



Copilot respects SharePoint permissions — it will never show a user content they don't have access to. But here's the catch: most organizations have accidentally over-shared content for years, and nobody noticed because users rarely searched for it.

Now Copilot actively surfaces this content in summaries, chat responses, and document suggestions. A financial report shared with "Everyone except external users" three years ago? Copilot will happily include those numbers in a summary.

The SharePoint Admin Agent



Microsoft's new SharePoint Admin Agent (available to Copilot licensees) helps identify and remediate oversharing:

  • Scans your entire tenant for overshared sites and files

  • Flags content with broad permissions ("Everyone" or "All authenticated users")

  • Explains the root cause of each oversharing risk

  • Suggests remediation steps


Preparing for Copilot: A Permission Cleanup Checklist



  • Audit "Everyone" and "Everyone except external users" permissions — These are the highest-risk sharing configurations

  • Review sites with external sharing enabled — Ensure guest access is still needed

  • Apply sensitivity labels to confidential documents — Labels enforce encryption and DLP regardless of who has access

  • Enable Conditional Access — Require MFA for all admin accounts and enforce device compliance

  • Run the Permission Matrix Generator — Document your current permission structure using our free Permission Matrix tool to identify gaps


Group-Based Permissions: The Right Way



Never assign permissions to individual users. Always use groups. Here's why:

Individual Permissions (Bad)


`
Documents Library:
- john@company.com → Edit
- sarah@company.com → Edit
- mike@company.com → Read
- lisa@company.com → Contribute
- alex@company.com → Edit
`

This becomes unmanageable at scale. When John leaves the company, you have to find and remove his access from every site, library, and folder individually.

Group-Based Permissions (Good)


`
Documents Library:
- Marketing Team (SP Group) → Edit
- Executive Stakeholders (AD Group) → Read
- Content Contributors (SP Group) → Contribute
`

When John leaves, you remove him from the group once, and his access is revoked everywhere. When a new hire joins, you add them to the appropriate group.

SharePoint Groups vs. Entra ID (Azure AD) Groups



FeatureSharePoint GroupsMicrosoft Entra ID Groups

|---------|------------------|---------------------------|
ScopeOne site collectionEntire tenant

ManagementSite ownersIT admins / Entra portal

Best forSite-specific permissionsCross-site, org-wide access

Dynamic membershipNoYes (with Entra ID P1)

Nested groupsNoYes


Recommendation: Use Microsoft Entra ID security groups for organization-wide access patterns (e.g., "All Marketing Staff"), and SharePoint groups for site-specific roles (e.g., "Project Alpha Owners").

External Sharing: Secure Collaboration



External sharing is essential for modern collaboration, but it needs guardrails:

Sharing Link Types



Link TypeRisk LevelWhen to Use

|-----------|-----------|-------------|
Specific People🟢 LowAlways preferred — only named recipients can access

People in your organization🟡 MediumInternal-only content that any employee should see

People with existing access🟢 LowJust generates a link, doesn't grant new access

Anyone🔴 HighAvoid in most cases — creates an anonymous link


Recommended Tenant-Level Settings



  • Disable "Anyone" links at the tenant level (SharePoint Admin Center → Sharing)

  • Set expiration on all guest links (30 days recommended)

  • Require guests to authenticate — no anonymous access

  • Restrict external sharing by domain — whitelist trusted partner domains

  • Enable access requests — let users request access instead of sharing broadly


Building a Permission Audit Report



Regular permission audits are essential for compliance (ISO 27001, SOC 2, GDPR). Here's a practical approach:

Step 1: Document Your Permission Structure



Use our Permission Matrix Generator to create a visual map of your permission structure. Start with a preset template and customize it to match your environment.

Step 2: Check for Broken Inheritance



Using PnP PowerShell, identify all items with unique permissions:

`powershell
Connect-PnPOnline -Url https://tenant.sharepoint.com/sites/YourSite -Interactive

# Get all lists with broken inheritance
Get-PnPList | Where-Object { $_.HasUniqueRoleAssignments } |
Select-Object Title, HasUniqueRoleAssignments

# Get all folders with unique permissions in a library
Get-PnPFolderItem -FolderSiteRelativeUrl "Shared Documents" -ItemType Folder |
Where-Object { $_.ListItemAllFields.HasUniqueRoleAssignments } |
Select-Object Name
`

Step 3: Review High-Risk Permissions



Check for overly permissive access:

`powershell
# Find items shared with "Everyone"
$web = Get-PnPWeb
$lists = Get-PnPList

foreach ($list in $lists) {
$roleAssignments = Get-PnPProperty -ClientObject $list -Property RoleAssignments
foreach ($ra in $roleAssignments) {
$member = Get-PnPProperty -ClientObject $ra -Property Member
if ($member.LoginName -like "everyone") {
Write-Host "WARNING: $($list.Title) shared with $($member.Title)"
}
}
}
`

Step 4: Export and Review



Export the results to CSV, cross-reference with your permission matrix, and identify gaps between your intended permissions and the actual state.

7 Permission Anti-Patterns to Avoid



  • "Just give everyone Edit access" — The fastest way to lose control of your content

  • Breaking inheritance on every folder — Creates an unmanageable permission tree

  • Using "Full Control" as the default — Violates least privilege and puts your site at risk

  • Forgetting to remove ex-employees — Use automated lifecycle policies with Microsoft Entra ID

  • Sharing entire sites with external users — Share specific libraries or folders instead

  • Not documenting permission decisions — You'll forget why you made them in 6 months

  • Ignoring the "Access Requests" queue — Users will find workarounds (like sharing externally) if they can't get access through proper channels


Quick Reference: Permission Decision Tree



When deciding what permission level to assign, use this decision tree:

`
Does the user need to manage site settings or permissions?
→ Yes → Full Control (make them a Site Owner)
→ No ↓

Does the user need to create lists, edit pages, or apply themes?
→ Yes → Design
→ No ↓

Does the user need to edit OTHER people's content?
→ Yes → Edit (make them a Site Member)
→ No ↓

Does the user need to add their OWN content?
→ Yes → Contribute
→ No ↓

Does the user need to download documents?
→ Yes → Read (make them a Site Visitor)
→ No → View Only
``

Tools for Permission Management



Here are tools I use regularly for SharePoint permission management:


  • PnP PowerShell — The gold standard for scripted permission audits and bulk changes

  • SharePoint Admin Center — For tenant-level sharing policies and site-level access reviews

  • Microsoft Purview — For sensitivity labels, DLP policies, and compliance reporting

  • SharePoint Admin Agent — AI-powered proactive governance (requires Copilot license)


Next Steps




  • Identify broken inheritance — Run the PnP PowerShell scripts above to find unique permissions

  • Remediate oversharing — Start with "Everyone" and "Everyone except external users" permissions

  • Establish a review cadence — Quarterly permission reviews for production sites

  • Train your team — Share this guide with site owners and content managers


Good permission hygiene isn't a one-time project — it's an ongoing practice. But with the right structure in place, it becomes routine rather than reactive.


Test Your Expertise


Think you've mastered SharePoint permissions and the broader Microsoft 365 ecosystem? Take the M365 Challenge Mode | Developer Quiz to test your knowledge against increasingly difficult enterprise scenarios and earn your rank!

Free Developer Tool

CAML Query Builder

Build complex CAML queries visually — no more hand-writing XML. Add nested AND/OR conditions, lookup filters, and get clean output instantly.

Try It Free →