SharePointのアクセス権設定|権限レベル・継承の解除・共有リンクとPowerShell棚卸し

SharePointのアクセス権設定|権限レベル・継承の解除・共有リンクとPowerShell棚卸し

SharePointのアクセス権は、サイト、リストとライブラリ、フォルダー、アイテムの4つの階層で決まり、下の階層は上の権限を引き継ぎます。サイトには所有者・メンバー・閲覧者の3グループがあり、それぞれフルコントロール・編集・読み取りの権限レベルが付いています。この記事では、権限レベルの違いと選び方、継承を切るときの上限値、共有リンク4種類の届く範囲とサイト単位の既定リンクの変更、PnP PowerShellとGraph APIで権限を棚卸しする手順までを、Microsoft Learnの記載とコード例で整理しました。

まとめ:SharePointのアクセス権はサイトのグループで渡し例外は数えて管理する

権限はサイトの3グループに人を入れて渡すのが基本で、ファイルやフォルダーごとの個別権限は例外として扱います。閲覧者が恒常的に違う情報は、継承を切るよりサイトを分けたほうが、後から権限の範囲を説明しやすい設計です。メンバーに既定の「編集」を渡すとライブラリごと削除できるため、多くの会社では「投稿」で足ります。

個別権限は、利用者が共有ボタンを押すだけで自動的に増えます。Microsoftが推奨する一意の権限の目安は1リストあたり5,000件で、超えてから気づいた場合は、継承へ戻す作業の負担が大きい状態です。PnP PowerShellで継承の切れたファイルを定期的にCSVへ出し、既定の共有リンクを「特定のユーザー」に絞っておけば、増え方を抑えたうえで実態を把握できます。

SharePointのアクセス権が決まる4つの階層と既定3グループの権限レベル

サイトからアイテムまで上から下へ権限が継承される4つのスコープ

SharePoint でのアクセス許可レベルによると、サイトの中身は既定ですべてトップレベルのサイトの権限を継承します。リストとライブラリはサイトから、ファイルとリストアイテムはリストやライブラリから引き継ぐ仕組みです。どこかの階層で固有の権限を割り当てると、そこから下は親の変更を受け取らなくなります。

この仕組みのせいで、サイトに人を追加したのに特定のフォルダーだけ開けない、という問い合わせが起きます。原因はたいてい、そのフォルダーの継承が過去に切られていることです。権限の調査は、まず対象の階層で継承が生きているかを確かめるところから始めます。

所有者・メンバー・閲覧者に付く既定の権限レベルと編集と投稿の違い

チームサイトには所有者・メンバー・閲覧者の3グループが自動で作られます。既定の権限レベルと、実務で差が出る操作は次のとおりです。

権限レベル 既定で付くグループ できること(差が出る操作)
フル コントロール 所有者 権限の管理を含むすべて。変更・削除できない
編集 メンバー 投稿+リスト・ライブラリ作成・削除、列変更
投稿 (既定では無し) アイテムとファイルの表示・追加・更新・削除
読み取り 閲覧者 ページとアイテムの表示、ファイルのダウンロード
表示のみ (既定では無し) ブラウザー表示。Office文書等はDL不可

違いが大きいのは編集と投稿です。編集には「リストの管理」が含まれるため、メンバーは誰でもライブラリそのものを削除したり、列を消したりできます。フル コントロールと制限付きアクセスを除き、既定の権限レベルは変更もできます。

グループ接続チームサイトとコミュニケーションサイトで違う権限の入口

SharePoint モダン エクスペリエンスでの共有とアクセス許可の記載では、チームサイトの権限はMicrosoft 365グループかTeamsのチームを通して管理するのが基本です。グループの所有者がサイトの所有者に、グループのメンバーがサイトのメンバーになります。Microsoft 365グループには閲覧だけのメンバーという区分が無いので、見るだけの人はサイトの閲覧者グループに直接追加します。

コミュニケーションサイトはグループに接続されず、3つのSharePointグループを直接使います。閲覧者グループには部署単位のセキュリティグループを入れると管理が楽ですが、セキュリティグループの入れ子はパフォーマンスの問題を起こすため勧められていません。Teamsとサイトの対応関係はTeamsとSharePointの関係と乱立を防ぐ運用ルールで扱っています。

権限レベルを選び分けてサイトとライブラリにアクセス権を付与する手順

メンバーに編集でなく投稿を渡してライブラリの削除を防ぐ権限設定

メンバーが日々行うのは、ファイルの追加と更新、削除までです。ライブラリの作成や列の変更まで任せる理由が無いなら、メンバーグループの権限レベルを編集から投稿に替えます。サイトの設定から「サイトのアクセス許可」を開き、メンバーグループを選んで「ユーザー権限の編集」で投稿に付け替える手順です。

ここで注意したいのが公開のチームサイトです。Learnによると、プライバシー設定が公開のチームサイトでは「外部ユーザー以外の全員」がメンバーグループに自動で追加されます。つまり社内の全員が編集できる状態で始まるため、部署の資料を置くサイトは非公開で作るか、作成後にこのグループを外します。

表示のみで閲覧はできてもダウンロードが止まらないファイルの種類

「表示のみ」は、ブラウザーで見せてもダウンロードはさせたくない資料に使う権限レベルです。止まるのはWordやExcelのように、サーバー側でブラウザー表示できるファイルに限られます。動画や.pngなど、ブラウザーで開けない種類のファイルはダウンロードできてしまいます。

図面の画像やPDF以外の添付まで持ち出しを止めたい場合、権限レベルだけでは足りません。非管理デバイスからの閲覧をブラウザーに限る設定と組み合わせる必要があり、その設定方法はSharePoint管理センターの外部共有とアクセス制御の設定項目にまとめています。

Teamsのプライベートチャネルのサイトは権限をSharePoint側で変えられない

プライベートチャネルと共有チャネルには、チャネル専用のSharePointサイトが別に作られます。このサイトの権限はTeamsでしか管理できず、SharePoint側の画面は読み取り専用で表示されます。チャネルの所有者がサイトの所有者、チャネルのメンバーがサイトのメンバーです。

そのため、チャネルのファイルだけ別の人に見せたいという依頼には、SharePoint側では応えられません。チャネルにその人を追加するか、ファイルを親のチームのサイトへ移してから共有するかを選びます。

継承の解除で個別のアクセス権を作るときの上限値と避けるべき設計

ライブラリ単位で継承を切りPnP PowerShellで親の権限をコピーする手順

経理の資料だけをメンバーから外したい、といった要件では、ライブラリ単位で継承を切ります。画面でも操作できますが、どのライブラリをいつ変えたかを残すならPnP PowerShellで行います。PnP PowerShellはRegister an Entra ID Application to use with PnP PowerShellのとおり、2024年9月9日以降は自社のEntra IDに専用のアプリを登録しないと接続できません。

# 初回のみ:対話ログイン用のアプリを登録し、表示されたクライアントIDを控える
Register-PnPEntraIDAppForInteractiveLogin -ApplicationName "PnP.PowerShell" -Tenant contoso.onmicrosoft.com

$clientId = "登録したアプリのクライアントID"
Connect-PnPOnline -Url https://contoso.sharepoint.com/sites/soumu -Interactive -ClientId $clientId

# ロール名はサイトの言語で変わるので、先に実名を確かめる
Get-PnPRoleDefinition | Select-Object Name

# 「経理」ライブラリの継承を切り、親サイトの権限をコピーしてから絞る
Set-PnPList -Identity "経理" -BreakRoleInheritance -CopyRoleAssignments
Set-PnPListPermission -Identity "経理" -Group "総務 メンバー" -RemoveRole "編集"
Set-PnPListPermission -Identity "経理" -Group "経理担当" -AddRole "投稿"

Set-PnPListの -CopyRoleAssignments を付けないと親サイトの権限がコピーされず、所有者グループを含めて権限を一から付け直すことになります。ロール名がサイトの言語に依存する点はSet-PnPListPermissionにも明記されているので、英語サイトなら “Edit” や “Contribute” に読み替えます。

一意の権限は1リスト5,000件が推奨値で10万件超のフォルダーは切れない

個別権限には数の上限があります。SharePoint の制限(2026年10月時点)の値を、権限設計で効く順に並べます。

  • リストまたはライブラリ内の一意の権限:サポート上限は50,000、一般的な推奨は5,000
  • 100,000を超えるアイテムを含むリスト・ライブラリ・フォルダー:継承の解除も、継承への戻しもできない
  • SharePointグループ:1グループ最大5,000ユーザー、1サイトに最大10,000グループ
  • 1人のユーザーが所属できるグループ:1サイトあたり5,000

見落としやすいのは2つ目です。ファイルが10万件を超えたライブラリでは、後から「このフォルダーだけ絞りたい」と言われても対応できません。アイテム単位の継承は切れますが、それも一意の権限の件数を増やすだけです。大きくなりそうなライブラリは、作る段階で閲覧者ごとに分けておきます。

共有ボタンが継承を自動で切り制限付きアクセスが積み上がる仕組み

個別権限を増やしているのは、管理者より利用者です。Learnの記載では、アクセス権を持たない人とファイルを共有すると、SharePointはそのファイルの継承を自動で止めます。同時に、そのファイルが入ったライブラリやサイトには「制限付きアクセス」が自動で割り当てられます。

制限付きアクセスは、ファイルを開くためにサイトの画面を通れるようにするだけの権限で、他の中身は見えません。害は無いものの、権限の一覧には共有した相手が次々と並び、誰が何を見られるのかが読めなくなります。社外の相手との共有が多いライブラリほど、この積み上がりが速く進みます。

共有リンク4種類の届く範囲とサイト単位で既定リンクを絞る設定

すべてのユーザー・組織内・特定のユーザー・既存アクセス権の比較

ファイルやフォルダーを渡すときに使う共有リンクは4種類です。サイトの既定の共有リンクの種類を変更すると、Graph APIのsharingLink resource typeの値を対応させると次のようになります。

画面の表示 開ける人 Graphのscope
リンクを知っているすべてのユーザー サインイン不要。社外の人も含む anonymous
組織内のユーザー 同じテナントにサインインした人全員 organization
特定のユーザー 共有時に指定した人だけ users
既存アクセス権を持つユーザー もともと権限がある人だけ(権限は変えない) existingAccess

「すべてのユーザー」リンクは認証を求めず、誰が開いたかを監査できません。組織内のユーザーのリンクも、転送されれば社内の誰でも開けるため、人事資料に使うと実質的に全社公開です。テナント全体でどのリンクを許可するかはSharePoint管理センターの初期設定で決め、サイトの中では既定のリンクを絞る、という分担になります。

Set-SPOSiteでサイトの既定リンクを特定のユーザーと表示に変える

利用者の多くは、共有画面で最初に選ばれているリンクのまま送信します。機密度の高いサイトだけ既定を厳しくするなら、SharePoint管理センターの「アクティブなサイト」でサイトを選び、「共有」から変更する手順です。Teamsのプライベートチャネルと共有チャネルのサイトは画面から変えられず、Set-SPOSiteを使います。

Connect-SPOService -Url https://contoso-admin.sharepoint.com

# 人事サイトの既定リンクを「特定のユーザー」、権限を「表示」にする
Set-SPOSite -Identity https://contoso.sharepoint.com/sites/jinji `
  -DefaultSharingLinkType Direct -DefaultLinkPermission View

# 既定を「既存アクセス権を持つユーザー」にして、共有で権限が増えないようにする
Set-SPOSite -Identity https://contoso.sharepoint.com/sites/jinji `
  -DefaultLinkToExistingAccess $true

DefaultLinkToExistingAccess を$trueにすると、既定のリンクは権限を変えない種類になり、共有ボタンで継承が切れる事故を減らせます。DefaultSharingLinkType と DefaultLinkPermission は、2026年11月時点のリファレンスで DefaultShareLinkScope と DefaultShareLinkRole に置き換える予定と書かれているので、新規のスクリプトでは置き換え先の名前も確かめておきます。

PowerShellとGraph APIで権限を棚卸しし継承が切れた箇所を洗い出す

PnP PowerShellで一意の権限を持つファイルとフォルダーをCSVに出す

棚卸しで最初に知りたいのは、継承が切れているファイルとフォルダーがどこに何件あり、誰に何の権限が付いているかです。ライブラリを1つずつ走査して、一意の権限を持つものだけをCSVに書き出します。

Connect-PnPOnline -Url https://contoso.sharepoint.com/sites/soumu -Interactive -ClientId $clientId

# ライブラリの表示名(日本語テナントの既定は「ドキュメント」)
$rows = foreach ($item in Get-PnPListItem -List "ドキュメント" -PageSize 2000) {
  $unique = Get-PnPProperty -ClientObject $item -Property HasUniqueRoleAssignments
  if (-not $unique) { continue }

  Get-PnPProperty -ClientObject $item -Property RoleAssignments | Out-Null
  foreach ($ra in $item.RoleAssignments) {
    Get-PnPProperty -ClientObject $ra -Property Member, RoleDefinitionBindings | Out-Null
    [pscustomobject]@{
      Path  = $item["FileRef"]
      Who   = $ra.Member.Title
      Roles = ($ra.RoleDefinitionBindings.Name -join ";")
    }
  }
}
$rows | Export-Csv .\unique-permissions.csv -NoTypeInformation -Encoding UTF8
($rows | Select-Object -ExpandProperty Path -Unique).Count   # 一意の権限を持つ件数

Get-PnPProperty はアイテムごとに問い合わせるため、数万件のライブラリでは時間がかかります。夜間に回し、最後の行で出る件数を毎月記録しておくと、推奨値の5,000件に近づくライブラリを早めに見つけることが可能です。前月から急に増えたライブラリは、利用者の共有で継承が切れている可能性が高いので、次のGraph APIでリンクの種類まで確かめます。

Graph APIのpermissionsで共有リンクの範囲と継承元を確かめる

ファイル1つについて、どの共有リンクが出ているかを確かめるにはGraph APIを使います。List sharing permissions on a driveItemは、ファイル自体に付いた権限と親から継承した権限の両方を返し、inheritedFrom の有無で見分けられます。

Connect-MgGraph -Scopes "Files.Read.All"

# リンクの範囲(scope)と継承元を一覧にする
Get-MgDriveItemPermission -DriveId $driveId -DriveItemId $itemId |
  Select-Object Id, Roles,
    @{n = "scope";     e = { $_.Link.Scope }},
    @{n = "type";      e = { $_.Link.Type }},
    @{n = "inherited"; e = { [bool]$_.InheritedFrom.Id }}

# REST で呼ぶ場合
# GET https://graph.microsoft.com/v1.0/drives/{drive-id}/items/{item-id}/permissions

scope が anonymous の行は、サインイン不要のリンクが出ている印です。所有者以外が呼び出すと自分に関係する権限しか返らないため、棚卸しはサイト所有者以上のアカウントか、Files.Read.All のアプリケーション権限で行います。アプリ登録と権限の選び方はMicrosoft Graph APIの権限設計と呼び出し手順で解説しています。

棚卸しの結果を継承へ戻すときのSystemUpdateと版の扱い

CSVで不要と判断したファイルは、Set-PnPListItemPermissionの -InheritPermissions で親の権限に戻します。-SystemUpdate を付けると、新しい版を作らず、Power Automateのフローも起動しません。

# CSVで「戻す」と判断したアイテムIDを継承に戻す(版を増やさない)
Set-PnPListItemPermission -List "ドキュメント" -Identity 128 -InheritPermissions -SystemUpdate

-SystemUpdate を付けずに数百件を戻すと、すべてのファイルに版が1つずつ増え、ファイルの更新をきっかけに動くフローがまとめて起動します。戻すと共有リンクで渡していた相手は開けなくなるため、社外との共有が残っているファイルは先に担当者へ確認を取ります。

個別権限で運用してよい場面とサイトを分けて解決すべき場面の判断

ファイル単位の例外を許すのは件数が数十件まで期限が決まる共有

個別権限を許してよいのは、期限が決まっていて件数が少ない共有です。取引先との見積書のやり取りや、プロジェクト期間中だけ外部の協力会社に見せる資料がこれにあたります。目安として、1ライブラリで数十件を超えたら運用が設計に追いついていないと判断し、閲覧者ごとにライブラリかサイトを分け直します。

Copilotを導入している会社では、個別権限の放置がそのまま参照範囲の広がりになります。過剰共有のレポートとCopilotからの除外の設定はMicrosoft 365 Copilotの情報漏洩対策で手順をまとめました。

人事や経理など閲覧者が恒常的に違う情報はサイトを分けて保存する

閲覧者がいつも違う情報は、1つのサイトの中で継承を切って守る設計にしません。人事評価や給与のように、見てよい人が組織として決まっている情報はサイトを分け、そのサイトの3グループで管理します。サイトの単位で分けておけば、外部共有の範囲や既定のリンクもサイトごとに設定でき、10万件の上限に触れても困りません。サイトの作り方と作成権限の制御はSharePointサイトの作り方で扱っています。

一方、継承の切れたファイルがすでに数千件ある状態からの立て直しは、棚卸しのスクリプト、サイトの分け直し、移行中の共有リンクの扱いを同時に設計する必要がある作業です。当社では、権限の現状調査から、サイト構成の見直し、PowerShellでの是正と定期棚卸しの仕組み作りまでをMicrosoft 365・Copilot導入支援としてお受けしています。上のスクリプトで出したCSVがあれば、分けるべきサイトと戻すべきファイルを具体的にご提案できます。

よくある質問

SharePointのアクセス権について、情シスやサイト所有者からよく寄せられる質問をまとめました。

SharePointでフォルダーごとにアクセス権を設定できますか?

設定できます。フォルダーの「アクセスの管理」から詳細設定を開き、継承を中止してから人やグループを追加・削除します。ただし、フォルダーに入っているアイテムが100,000件を超えると、継承の解除も戻しもできません。閲覧者が恒常的に違うなら、フォルダーで分けるよりライブラリかサイトを分けたほうが、後から権限を追いやすくなります。

権限の継承を元に戻すとどうなりますか?

そのフォルダーやファイルに個別に付けた権限はすべて消え、親のライブラリやサイトと同じ権限になります。個別に共有していた相手は開けなくなり、共有リンクも使えない状態です。PowerShellで戻す場合は Set-PnPListItemPermission に -InheritPermissions を指定し、版を増やしたくなければ -SystemUpdate も付けます。

サイトのメンバーなのにファイルを開けないのはなぜですか?

そのファイルか、上のフォルダー・ライブラリで継承が切られている可能性が高いです。継承が切れた箇所は、サイトの権限を変えても反映されません。「アクセスの管理」の詳細設定を開き、親とは別の権限が付いていれば、その階層で個別に権限を追加するか、継承に戻します。Teamsのプライベートチャネルのファイルなら、チャネルへの追加が必要です。

誰がどのファイルにアクセスできるかを一覧で確認できますか?

画面ではサイトの詳細なアクセス許可の設定にある「アクセス許可の確認」で、特定の人の権限を1人ずつ確かめられます。サイト全体を一覧にするなら、本文のPnP PowerShellのスクリプトで一意の権限を持つファイルをCSVに出す方法が現実的です。共有リンクの範囲まで見るなら、Graph APIのpermissionsで scope を確認します。

社外のゲストに特定のフォルダーだけを見せられますか?

見せられます。テナントとサイトの外部共有が許可されていれば、フォルダーの共有で「特定のユーザー」を選び、ゲストのメールアドレスを指定します。ただし、このやり方はフォルダーの継承を切るので、相手が多い場合や長く続く取引では、ゲスト用のサイトを別に作るほうが管理しやすい設計です。外部共有の許可範囲はSharePoint管理センターで決めます。

関連記事

お気に入りに入れた記事の一覧

一創の公式 SNS

X では毎朝の新着記事と IT ニュースの速報を、YouTube・TikTok・Instagram・LinkedIn・Facebook では記事の解説動画を配信しています。

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.10.29 テックブログ ソニー生命の情報漏洩38.5万件|ログインできない理由、再開状況と窓口の電話番号
  2. 2026.11.03 テックブログ ノジマ不正アクセスで約700万件漏えい:対象確認・窓口と乗っ取り注文を止める実装
  3. 2026.11.02 テックブログ サントリーの不正アクセスで約10万人分漏えい|M365のファイル大量ダウンロードを監査ログで調べる手順
  4. 2026.11.03 テックブログ クラブツーリズム不正アクセス:約432万件の対象確認と偽メールの見分け方・流出検知の設計
  5. 2026.11.02 テックブログ アララの不正アクセス:メール約7,700万件の持ち出しと契約企業が行うAPIキー再設定・代替送信・連名報告

RELATED POSTS 関連記事

目次