Skip to content
SharePoint

SharePoint Site Permissions Best Practices for Microsoft 365

BP

Billy Peralta

July 21, 2025

SharePoint Online Microsoft 365 Governance Security Permissions

TL;DR

SharePoint permissions are one of the most misunderstood and mismanaged areas in Microsoft 365. The key principles are: use Microsoft 365 groups as the foundation, keep inheritance intact wherever possible, avoid item-level permissions, restrict sharing link defaults, and audit regularly. With Copilot and AI now surfacing content based on user access, fixing oversharing is no longer optional — it is urgent.

Table of Contents

  1. Why SharePoint permissions matter more than ever
  2. How SharePoint permissions work
  3. Microsoft 365 groups vs SharePoint groups
  4. Permission inheritance and when to break it
  5. Sharing links and external sharing settings
  6. Least privilege access in practice
  7. How to audit SharePoint permissions
  8. Common permission mistakes and how to fix them
  9. Permissions and Microsoft 365 Copilot
  10. Final thoughts
  11. FAQ

Why SharePoint permissions matter more than ever

Permissions in SharePoint have always been important, but most organizations only think about them reactively — after someone accesses something they should not have, or after sensitive content is shared externally by accident.

Two things have made permissions a higher priority now:

  1. Microsoft 365 Copilot uses the same permission model as SharePoint. If a user has access to a document, Copilot can surface it in responses. Overshared content becomes AI-amplified overshared content.
  2. Hybrid and remote work has increased the use of sharing links, guest access, and ad hoc permissions. Without governance, permission sprawl grows quickly.

Getting permissions right is not just a security exercise. It directly affects data quality, compliance posture, and the reliability of AI-driven tools across your tenant.

How SharePoint permissions work

SharePoint Online uses a role-based permission model. At a high level:

  • Permission levels define what actions a user can perform (e.g., Read, Contribute, Edit, Full Control).
  • Groups bundle users together and assign them a permission level on a site, library, folder, or item.
  • Inheritance means that child objects (libraries, folders, items) inherit permissions from their parent by default.
  • Breaking inheritance creates unique permissions on a specific object, decoupling it from the parent.

The model is flexible, which is both its strength and its risk. Without discipline, you end up with a tangled web of unique permissions that no one can audit or understand.

Microsoft 365 groups vs SharePoint groups

When you create a modern team site, it is backed by a Microsoft 365 group. This group controls the default membership:

  • Owners of the Microsoft 365 group become site collection administrators.
  • Members get Edit access to the site.
  • Visitors (a SharePoint group, not part of the Microsoft 365 group) get Read access.

Best practices

  • Use the Microsoft 365 group for membership management. Adding someone to the group gives them access to the site, the connected Teams team, the shared mailbox, and Planner — all in one step.
  • Avoid adding individual users directly to SharePoint groups unless you have a specific reason. It creates a parallel permission structure that is harder to manage.
  • Use the Visitors SharePoint group for read-only users who should not be part of the Microsoft 365 group.
  • For communication sites, there is no backing Microsoft 365 group. Use SharePoint groups or Azure AD security groups to manage access.

Permission inheritance and when to break it

Inheritance is the default and should remain the default in most scenarios.

When breaking inheritance is acceptable

  • A specific library contains sensitive content that only a subset of site members should access (e.g., an HR documents library on an HR site).
  • A folder within a library needs restricted access for a short-term project (but consider whether a separate site is a better solution).
  • A single document needs to be shared with someone outside the site for review purposes.

When breaking inheritance causes problems

  • At scale. If you have hundreds of items with unique permissions, performance degrades, auditing becomes nearly impossible, and users get confused about what they can and cannot see.
  • Folder-level permissions. Breaking inheritance on folders within a library creates a hidden permission maze. Users see some folders but not others with no clear reason.
  • Item-level permissions as a pattern. If you routinely break inheritance at the item level, your information architecture is likely wrong. Restructure your sites and libraries instead.

The rule of thumb

If you need to break inheritance on more than a handful of objects in a site, you probably need a separate site with its own permission boundary.

Sharing links are one of the biggest sources of unintentional oversharing in Microsoft 365.

Link typeScopeRisk level
AnyoneNo sign-in requiredHigh
People in your organizationAll internal usersMedium-High
People with existing accessOnly current membersLow
Specific peopleNamed individualsLow
  • Set the default sharing link type to “People with existing access” or “Specific people” at the tenant level. This prevents users from accidentally creating broad links.
  • Disable “Anyone” links unless you have a documented business requirement. If needed, enable them only on specific sites.
  • Set link expiration policies. Even “Specific people” links should expire after a reasonable period (e.g., 30–90 days).
  • Restrict external sharing at the site level for sensitive sites, even if the tenant allows it.
  • Use sensitivity labels to enforce sharing restrictions on classified content automatically.

These settings are configured in the SharePoint admin center under Policies > Sharing and can be overridden per site.

Least privilege access in practice

The principle of least privilege means giving users only the access they need to do their work — nothing more.

In SharePoint, this translates to:

  • Do not make everyone an Owner. Owners can change site settings, manage permissions, and delete content. Most users need Member (Edit) or Visitor (Read) access.
  • Use Read access as the default for communication sites. These are typically publishing sites where most users consume content rather than create it.
  • Separate sensitive content into its own site rather than trying to lock it down within a shared site.
  • Review guest access quarterly. External users granted access for a project six months ago may no longer need it.
  • Use access reviews in Entra ID (Azure AD) for Microsoft 365 groups that control access to sensitive sites.

How to audit SharePoint permissions

You cannot fix what you cannot see. Regular permission audits are essential.

Built-in tools

  • Site permissions panel. In site settings, review who has access and at what level. Check for users with direct access outside of groups.
  • “Check permissions” feature. On any library or item, use the “Check Permissions” option to verify what access a specific user has.
  • Sharing reports. The SharePoint admin center provides sharing activity reports.
  • Microsoft 365 admin center > Reports. Review sharing and external access activity.

PowerShell and PnP

For larger environments, use PnP PowerShell to generate permission reports:

# Connect to the site
Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/HR" -Interactive

# Get all unique permissions in a site
Get-PnPList | ForEach-Object {
    $list = $_
    Get-PnPListItem -List $list -PageSize 500 | Where-Object {
        $_.HasUniqueRoleAssignments
    } | ForEach-Object {
        [PSCustomObject]@{
            List = $list.Title
            Item = $_.FieldValues["FileLeafRef"]
            URL  = $_.FieldValues["FileRef"]
        }
    }
}

This gives you a starting point to identify where inheritance is broken and clean it up.

Third-party tools

For enterprise-scale auditing, consider tools like ShareGate, Rencore, or AvePoint that provide detailed permission reports across your entire tenant.

Common permission mistakes and how to fix them

1. Granting Full Control too broadly

Problem: Multiple users have Full Control when they only need Edit access.

Fix: Review site collection administrators and Owners group membership. Remove users who do not need administrative access.

2. Breaking inheritance on every folder

Problem: A library has 50 folders, each with unique permissions. No one knows who can see what.

Fix: Restructure into separate libraries or separate sites. Reset inheritance on folders where unique permissions are no longer needed.

3. “Everyone except external users” on sensitive sites

Problem: The built-in claim “Everyone except external users” is used on sites containing confidential content, giving all internal users access.

Fix: Remove the claim and replace it with specific security groups or Microsoft 365 groups.

4. Stale guest access

Problem: External users who were granted access months or years ago still have access.

Fix: Run a guest access review using Entra ID access reviews or a manual PowerShell audit. Remove access for inactive guests.

Problem: Hundreds of sharing links exist with no expiration date, providing perpetual access.

Fix: Set a tenant-level expiration policy for sharing links. Use the SharePoint admin center sharing report to identify and revoke old links.

Permissions and Microsoft 365 Copilot

This deserves its own section because it is the biggest reason organizations are suddenly paying attention to permissions.

Microsoft 365 Copilot respects SharePoint permissions. It will only surface content that the user already has access to. But the problem is that most organizations have far more oversharing than they realize.

Before Copilot, oversharing was a latent risk. A user technically had access to a sensitive document, but they would never find it because they did not know it existed. Copilot changes this because it actively searches and surfaces content from across the tenant.

Steps to prepare

  1. Run the SharePoint Advanced Management oversharing report if your tenant has SAM licensed. It highlights sites and content with broad access.
  2. Review sites with “Everyone except external users” access. This is the most common oversharing pattern.
  3. Audit sharing links. Identify and revoke links that provide broader access than intended.
  4. Restrict Copilot access to specific SharePoint sites using Restricted SharePoint Search or sensitivity labels if you need to limit what Copilot can index while you remediate.
  5. Establish ongoing governance. Oversharing is not a one-time fix. Build regular access reviews into your governance process.

Final thoughts

SharePoint permissions are not complicated in concept, but they become complicated in practice when there is no governance. The most effective approach is to keep the model simple:

  • Use Microsoft 365 groups for membership
  • Keep inheritance intact
  • Default to least privilege
  • Restrict sharing link defaults
  • Audit regularly

If your organization is adopting Copilot or any AI tooling, treat a permissions audit as a prerequisite — not an afterthought.

FAQ

What is the difference between SharePoint groups and Microsoft 365 groups?

SharePoint groups exist only within SharePoint and control access to a specific site. Microsoft 365 groups are tenant-wide and provide access to a connected set of services including SharePoint, Teams, Outlook, and Planner. For modern team sites, Microsoft 365 groups are the recommended approach.

How do I check what permissions a user has on a SharePoint site?

Go to the site, click the gear icon, select Site permissions, then click Check permissions. Enter the user’s name or email to see their effective access level and how it was granted.

Can I restrict Microsoft 365 Copilot from accessing certain SharePoint sites?

Yes. You can use Restricted SharePoint Search to limit Copilot’s index to specific sites, or apply sensitivity labels that restrict access. SharePoint Advanced Management also provides controls for identifying and remediating overshared content.

How often should I audit SharePoint permissions?

At minimum, quarterly for sensitive sites and annually for standard sites. If your organization uses Copilot, increase the frequency. Automated access reviews through Entra ID can handle this at scale.

Should I use item-level permissions in SharePoint?

Avoid them as a pattern. Item-level permissions are acceptable for rare one-off scenarios but should not be your standard approach. If you find yourself setting unique permissions on many items, restructure your sites and libraries instead.


To support permission review, I also built an open-source SPFx Permission Visualizer that helps identify broken inheritance, direct user assignments, external users, SharePoint groups, and permission risk across SharePoint Online sites.

If you need help auditing your SharePoint permissions, remediating oversharing, or preparing your tenant for Microsoft 365 Copilot, reach out and let’s discuss your environment.

handshake

Planning a SharePoint migration or cleanup?

I help organizations assess SharePoint environments, clean up stale content, review permissions, and build practical migration roadmaps before moving to Microsoft 365.

timeline 16+ years experience verified Microsoft certified apartment Government & enterprise
BP

Billy Peralta

SharePoint & Microsoft 365 Specialist • 16+ Years Experience

If you have questions about your SharePoint environment, feel free to reach out.

Planning a SharePoint migration or cleanup?

I help organizations assess SharePoint environments, clean up stale content, review permissions, and build practical migration roadmaps before moving to Microsoft 365.