SharePoint安全性继承基础实现

r_h*_*ney 7 sharepoint sharepoint-security sharepoint-online

我的问题有两部分.如果我有一个包含10K文档的文档库,并且所有文档都设置为从库中继承权限,该库本身具有包含500个用户的显式ACL(即库不从站点继承安全性),则:

  1. 是否为每个设置为继承安全性的文档在SharePoint数据库中复制ACL.
  2. 如果我在列表中添加其他用户,则其底层实现中的SharePoint是否需要将该用户进一步添加到10K文档ACL.

如果1)的答案为否,那么2)的答案可能本身也不是,仍然希望确定并因此单独列出.

这对我们来说很重要的原因是:

  1. DL上有很多用户,DL继承安全性的文档很多.如果每个文档复制相同的内容,则意味着需要增加存储空间.
  2. 通过SP api呼叫在DL上频繁更新安全性.如果它需要按文件复制,我们需要在进行api调用时考虑相同的时间.

r_h*_*ney 3

根据我自己的研究,不会为继承 SharePoint 中安全性的对象复制 ACL。

ACL afaik 存储在 SharePoint 内容数据库的 Perms + RoleAssignment 表中。Perms 仅包含不从父级继承安全性的对象的条目(由 ScopeId 列标识),RoleAssignment 包含 Perms 表中 ScopeId 的角色。

因此,如果一个对象继承了安全性,那么它就不会在数据库中定义 ACL 条目。我写了一篇博客文章,进一步深入了解了我在同一背景下的研究: https ://imbibe.in/blog/2018/01/08/permission-storage-sharepoints-database/