権限を再継承すると添付ファイルが削除される(ことがある)

まだ調査中のため、きちんとしたご説明ができないのですが。しかし再現性が確認できてしまった上、結構洒落にならない問題であるにも関わらず、かなり気づきにくい類ですので、ご報告しておきます。

まず、この現象が確認されている環境ですが、SharePoint2007 SP2 + 6月CU です。
個人的には6月のCUのバグを疑っています。

お知らせリストを作成します。(おそらく添付ができれば他リストでもOK)
このリストにいくつかアイテムを登録します。
ひとつのアイテムの権限を編集し、大量※のユーザーを追加して下さい。
許可レベルは何でも構いません。
これで、SharePointの仕様により、リスト本体には大量の「制限付きアクセス」が設定されます。

※設定されたアカウント数が多いほど再現性が高くなる─ように感じます。ただし手作業で検証する場合、一度に登録削除出来るユーザ数の上限が200のため、200アカウントを推奨します。

次に、別のアイテムを編集し、添付ファイルを付けて保存して下さい。
これもSharePointの仕様により、ファイルはアイテム保存時に Lists/list1/Attachments/ID/ 配下にアップロードされます。
このフォルダの中身は、¥¥server¥site¥Lists¥list1¥Attachments¥ID¥ で確認することが出来ます。

さて、このアイテムの権限を編集し、全てのユーザアカウントを削除してください。
当然、システムアカウントしかアクセスできないアイテムになります。

このアイテムをまた編集し、添付ファイルを追加して保存します。
IDフォルダを確認すると、当然ですが追加されたファイルが表示されます。

さて、ここからが問題の現象です。
このアイテムの権限を編集し、親リストから権限を継承しなおします。

すると…あれれ?
最後に添付した筈のファイルが、消えてしまいました。
リスト側の表示にはきちんと残っているのですが。

GUIからこのファイルにアクセスしようとすると、当然ながらエラーになります。
メッセージは対象のアプリケーションにより異なります。

この現象は必ず発生するわけではなく「時々」です。
ただし、親から継承するアカウント数が多いほど、再現性が高くなる傾向にあるようです。
試しに700アカウントほど権限登録されたリストで試験してみましたが、私の環境では概ね1/2~1/3前後の頻度で発生しました。
これは実用面としても無視出来ない再現率です。

厄介なのは、通常、アイテムの登録者(一般ユーザ)がこの障害に気づくことが難しい点です。
アイテムのGUI上では、添付ファイルはきちんと存在するように見える上、もし登録者がとても慎重で、念のため自分でクリックしてファイルの有無を確認したとしても、どうも ie のキャッシュが悪さをするらしく、きちんと開けたりします。

もともと、この問題は、私達が VisualStudio と C# で独自設計したワークフローが発端でした。
このワークフローは、ResetRoleInheritance および BreakRoleInheritance メソッドを利用して、保存時にアイテムの権限を自動変更するものです。

- 新規/変更で起動
- 権限を編集→作成者と更新者に投稿権限を設定してそれ以外を削除
- 選択列が「下書」ならそれで終り
- 選択列が「公開」なら、親権限を継承して終了
- 選択肢が「限定」なら、指定されたSharePointGrouupに権限を設定して終了

以上がワークフローのおおまかな仕様になります。
当初は ResetRoleInheritance メソッドのバグではないかと予想したのですが、GUIから手作業で権限編集→削除→再継承を繰り返した場合でも、再現してしまいました。

しかも、その保存時にアップロードされたファイルが消える、あるいはIDフォルダ内の全てのファイルが削除されるなら、まだ現象として判りやすいのですが…。
挙動を見る限り「最後に登録されたファイルだけ消える」ようです。

正直、なにがどうしたらこんな挙動になるのか(バグであれ仕様であれ)見当もつきません。
とりあえずは、「公開」による権限の継承を選択不可にして、「限定」選択肢のひとつとして、親権限と同義のSharePoint Groupで用意することで、ResetRoleInheritance を回避し、暫定的な対応としています。

これからMicrosoftに調査を依頼するつもりですが、進展があればまたご紹介します。

原因が判明しました : SharePoint 2007 で権限を継承すると添付ファイルが消える(500エラー)原因


Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9