SharePoint Permissions Best Practices for Secure Microsoft 365 Sites

Least privilege, group-based access, external sharing controls, audit methodology, and the top mistakes that create security liabilities — a definitive security-focused guide.

SharePoint permissions are deceptively easy to get wrong. The platform makes it trivially simple to share content — which is by design — but that ease of sharing, without governance, creates the oversharing problems that result in data breaches, compliance failures, and Copilot AI surfacing documents to people who should never have seen them. This guide sets out the permission design principles, structural patterns, and audit approaches that prevent those problems.

Principle 1: Always Start with Least Privilege

The least privilege principle means granting users the minimum access required to do their job — no more. In SharePoint, this translates to concrete decisions at every level of the permission hierarchy:

  • Default new users to Read, not Contribute: Most employees who consume content from a SharePoint site do not need to create, edit, or delete items. Read-only access is appropriate until there is a specific need for more.
  • Reserve Full Control for site owners only: Full Control allows a user to change permissions, which means they can grant themselves or others access to anything on the site. This should be limited to 1–2 designated site owners, not the 8 people who happened to be in the room when the site was created.
  • Start with site-level permissions; break inheritance only when necessary: Most access control should be managed at the site level. Breaking inheritance for individual libraries, folders, or items creates a complex, unauditable permission structure. If you need to restrict access to a subset of content regularly, consider whether it belongs in a separate site instead.

Principle 2: Use Groups, Not Individual Accounts

Granting access to individual user accounts — rather than Azure AD groups or SharePoint groups — is the most common SharePoint permission anti-pattern. It creates three problems:

  1. Leaver management: When an employee leaves, their individual access grants across dozens of sites must be manually removed. Group-based access is automatically removed when the user is removed from the group.
  2. Auditability: Reviewing who has access to a site requires inspecting every individual grant rather than reviewing a small set of groups with clear, named membership.
  3. Scalability: Managing access for 500 users across 50 sites requires 25,000 individual grants. Managing it with 10 groups requires 500 group memberships and 50 site permission configurations — manageable by any administrator.

Best practice: For every SharePoint site, use three Azure AD groups: Site Owners, Site Members, and Site Visitors. Map these directly to the SharePoint Owners, Members, and Visitors groups. Manage all access by adding users to the Azure AD groups — never by adding individuals directly to SharePoint groups.

📄 Default SharePoint groups — learn.microsoft.com

Principle 3: Control External Sharing at Every Level

SharePoint's external sharing settings operate at three levels: tenant, site collection, and item/library. Each lower level can only be as permissive as the level above it — you cannot enable Anyone links for a site if the tenant setting disables them.

Sharing settingWho can accessRecommended use
Anyone (anonymous)Any person with the link — no sign-in required; not tracked in audit logs as a named userAvoid entirely for business data; acceptable for public-facing marketing assets only
New and existing guestsExternal users; new guests must verify identity before first accessClient collaboration sites, partner project sites with appropriate governance
Existing guests onlyExternal users already in the Azure AD directoryIT-controlled guest access; new guests require an Azure AD invite from IT
Only people in your organisationInternal M365 users only; no external access possibleDefault setting for all internal sites; HR, Finance, Legal, Executive sites

Recommended tenant sharing policy

Set the tenant default to "New and existing guests" at most. Then disable external sharing at the site level for all internal sites (HR, Finance, Legal, IT, Executive), leaving it enabled only for sites with a legitimate collaboration need. Use SharePoint Advanced Management's Data Access Governance reports monthly to identify sites where sharing settings have drifted from the baseline.

📄 External sharing overview for SharePoint — learn.microsoft.com

The 10 SharePoint Permission Best Practices

  • 1
    Assign a named site owner to every site

    Sites without a designated owner accumulate access grants that no one reviews. Every SharePoint site must have at least one named human owner (not a shared mailbox or service account) responsible for quarterly access reviews.

  • 2
    Set organisation-wide sharing link default to "Specific people"

    The default sharing link type — what appears when a user clicks Share — defaults to "Anyone with the link" in many tenants. Change the tenant default to "Specific people" or "People in your organisation" so the secure option is the path of least resistance.

  • 3
    Set link expiry on Anyone links

    If Anyone links are permitted for specific sites, configure a mandatory expiry (30 days is standard). Expired links require re-sharing — which creates a natural governance checkpoint.

  • 4
    Never break inheritance for individual items

    Item-level unique permissions (broken inheritance on a single file or list item) are invisible in the site's permission summary, nearly impossible to audit at scale, and frequently forgotten. Use folder or library-level permissions instead, or create a separate site for genuinely restricted content.

  • 5
    Run quarterly access reviews for sensitive sites

    At minimum, HR, Finance, Legal, and Executive sites should have their member lists reviewed every 90 days. Use SharePoint Advanced Management's Site Access Review feature to automate the request — owners receive an email with a list of current members and confirm or revoke each one.

  • 6
    Remove guest accounts immediately on relationship end

    Guest accounts in Azure AD persist until explicitly removed. An ex-client's employee with guest access to your SharePoint client site retains that access indefinitely unless removed. Build a process: when a client relationship ends, an offboarding checklist includes removing guest accounts.

  • 7
    Classify sites by sensitivity and apply baseline controls

    Create three site classifications: Public (internal), Confidential, and Highly Confidential. Define the baseline sharing settings, guest access rules, and sensitivity label requirements for each. Apply the classification to every site at creation and enforce it via SharePoint Advanced Management policies.

  • 8
    Monitor the Sharing reports in the Admin Centre

    The SharePoint Admin Centre's Active Sites report shows the external sharing status of every site. Review it monthly. Sites where external sharing is enabled that were not expected to have it are a governance failure signal.

  • 9
    Apply Purview sensitivity labels to enforce technical controls

    Sensitivity labels can enforce site-level access policies that cannot be bypassed through the SharePoint UI — including disabling Anyone links for Confidential-labelled sites, enforcing download restrictions for Highly Confidential content, and preventing sharing with external users regardless of site-level settings.

  • 10
    Prepare permissions before enabling Microsoft 365 Copilot

    Copilot respects SharePoint permissions exactly — if a user has access (even through a forgotten sharing link), Copilot will use that content in its responses. Run the oversharing audit before Copilot rollout, not after. See our SharePoint Copilot Readiness guide for the full methodology.

How to Conduct a SharePoint Permissions Audit

A permissions audit should answer three questions: Who has access to what? How did they get it? Is that access still appropriate?

Audit methodology

  1. Inventory all sites: Export a list of all SharePoint sites and their owners from the SharePoint Admin Centre (Active Sites view, export to CSV)
  2. Identify high-risk sites: Flag sites with "External sharing enabled", sites with "Everyone" or "Everyone except external users" in their member lists, and sites with no owner activity in 90+ days
  3. Run SAM Data Access Governance reports: SharePoint Advanced Management provides pre-built oversharing reports — Anyone links, Org-wide sharing links, and sensitivity label coverage. These are the fastest way to identify high-risk content at scale.
  4. Review broken inheritance: Use PnP PowerShell's Get-PnPListItem with permission expansion to find list items and folders with unique permissions — these are the blind spots in most permission reviews
  5. Validate external guest accounts: Export all Azure AD guest users and cross-reference against active business relationships; remove orphaned guest accounts
  6. Document findings and prioritise remediation: Score findings by risk (sensitivity of content × breadth of unintended access × likelihood of exploitation) and build a prioritised remediation plan
📄 SharePoint Advanced Management documentation — learn.microsoft.com

Audit cadence: An annual SharePoint permissions audit is the minimum for any organisation. Quarterly audits are recommended for organisations in regulated industries or those deploying Microsoft 365 Copilot. Use SharePoint Advanced Management's automated access reviews to make quarterly reviews operationally feasible at scale.

Need a SharePoint permissions audit?

OceanCloud conducts SharePoint permissions audits using SharePoint Advanced Management, PnP PowerShell, and Microsoft Purview — delivering a risk-scored findings report with a prioritised remediation plan. Typical engagement: 2–3 weeks.

Request a Permissions Audit