在 SharePoint 中有效管理权限对于安全和适当的用户访问至关重要。 随着 SharePoint 网站中文档数量的增加,设计和实现不当可能会迅速导致权限范围限制,从而对性能产生负面影响。 本文介绍权限范围和访问控制机制,提供在 SharePoint 中有效设计和管理权限范围的最佳做法。
首先,让我们回顾一下与权限范围相关的一些关键组件。
关键概念和组件
访问控制列表 - ACL) 访问控制列表 (由一组访问控制项 (ACE) 组成。
访问控制项 - SharePoint 中的访问控制项 (ACE) 是主体和权限掩码的组合, (读取、读取/写入) 。
主体 - 主体可以是单个用户或 组。 如果 ACL 中的 ACE 中存在某个组,则向该组的所有成员授予 ACE 指定的权限级别。
权限范围 - 权限范围是一个唯一受保护的对象。 这意味着其 ACL 的设置可以不同于其父级。 如果文件和文件夹都属于同一目录树的一部分,则可以具有相同的权限。 文档库中最多可以有 50,000 个唯一 ACL,但为了获得最佳性能,建议将其保持在 5,000 个以下。
权限继承 - 默认情况下,网站集包含多个网站。 每个网站可以有一个或多个列表和文档库,所有这些列表和文档库都从网站集继承其权限。 同样,文件夹、列表和文档从包含它们的父对象继承权限。 有关详细信息,请参阅 自定义 SharePoint 列表或库的权限。
独有权限 - 默认情况下,文件或文件夹继承包含它的库或文件夹的权限。 为文件分配“唯一权限”后,它将停止从其父级继承权限,并且可以独立设置其权限。 这意味着文件或文件夹现在具有其自己的权限范围。
权限范围和权限继承
在 SharePoint 中,ACL 用于管理对象的权限, (文件和文件夹) 。 每个 ACL 由多个 ACE 组成,这些 ACE 指定主体的权限。
创建文档库时,它具有单个权限范围,这意味着文档库中的所有文件和文件夹都从文档库的根目录 继承其 ACL ,并共享相同的权限。 初始范围计数为 1。
中断继承
对文件或文件夹中断继承会创建新的权限范围,范围计数增加 1。
可以使用两种方法来中断继承:
可以通过转到库的设置 来手动中断继承 。
如果共享文件或文件夹,此作会中断对文件或文件夹的权限继承,从而允许其 ACL (,并且文件夹中的内容) 与其父级不同。
本文讨论了使用第二种方法中断继承的影响,并概述了在库中尽量减少添加过多范围计数的最佳做法。
例如,如果创建一个文档库,然后创建一个文件夹,共享文件夹 (这会中断继承) ,并将 75,000 个文件上传到该文件夹,则文档库的范围计数为 2。 这是因为文件夹中的所有 75,000 个文件都共享文件夹的权限范围,因此共享其 ACL。 文档库中只有两个唯一的 ACL:根目录中的 ACL 和文件夹上的 ACL。 如果创建多个文件并与用户单独共享每个文件,则每次都会添加范围计数。 若要避免这种情况,请将所有文件放在同一文件夹中,并改为共享文件夹。
具有较大项计数的共享文件夹
如果文件夹具有 100,000 个或更少的项,则只能中断其继承。 如果文件夹超出此限制且未唯一共享,则以后无法唯一共享该文件夹。 因此,请在大型文件夹达到 100,000 个项目之前共享它们。 理想情况下,如果知道文件夹需要唯一共享,则共享包含零项的文件夹。
具有继承权限的文件的共享 ACL
如果两个文件具有等效的 ACL,因为它们都继承自父文件夹,则它们共享 ACL。 仅父文件夹计数。 但是,如果两个文件具有相同的 ACL,因为它们与相同的主体单独共享,则它们将具有两个具有相同权限的权限范围。
中断继承对范围计数的影响
如果文件夹中有两个文件,并且你与用户共享它们,这将花费你三个范围:一个用于父文件夹,一个用于单独共享的每个文件。 与用户共享这两个文件并不重要,文件的 ACL 相同。 从父级中断文件或文件夹的继承后,将创建唯一范围。
高效共享以避免超出范围限制
如果你有 10,000 个要与用户共享的文件,并且你单独共享每个文件,这将花费 10,000 个范围,这会降低性能,因为已超出建议的 5,000 个限制。 但是,如果创建一个文件夹,与用户共享该文件夹,然后将所有 10,000 个文件移动到该文件夹中,则只需为文件夹) 额外花费一个范围 (。 如果之前已逐个共享这 10,000 个文件中的每一个,并将其移动到具有相同 ACL 的公用文件夹,则仍会超出限制, (系统不会通过还原权限继承) 来代表你“清理”这些权限。
了解范围限制
ACL 建议的 5,000 个限制意味着最多可以有 5,000 个唯一 ACL。 这并不意味着只能有 5,000 个包含 ACL 的文件或文件夹。 如果两个文件从其父文件夹继承同一 ACL,则它们共享该 ACL。 在这种情况下,只有父文件夹的 ACL 计入限制。 但是,如果两个文件具有相同的 ACL,但显式设置(而不是通过从父文件夹继承),则每个文件的 ACL 以及父文件夹的 ACL 将计入限制。
实际性能可能因 ACL 大小等因素而异。 如果 ACL 较小 (每个 ACL) 少于 10 个 ACE,则可以超过 5,000 个范围而不会遇到问题。 但是,如果 ACL 较大, (最多 5,000 个 ACE) ,在达到限制之前可能会遇到性能问题。
示例场景
方案:共享文件
与单个用户共享文件夹中的两个文件使用三个范围:一个用于父文件夹,一个用于两个文件中的每个范围。 即使这两个文件都与同一用户共享,并且具有相同的 ACL,但从父文件夹中断继承会创建唯一的范围。 因此,如果有 10,000 个要与用户共享的文件并单独共享每个文件,则需要 10,000 个其他范围。 但是,如果将所有文件放在单个文件夹中,请与用户共享该文件夹,然后将文件移动到该文件夹中,则只需要该文件夹的一个附加范围。
要考虑的一个重要点是共同创作。 如果用户正在处理 Microsoft Word 中的文件,并且想要与某人共同创作,则如果文件位于 SharePoint 中,他们仍然可以邀请他们。 这样做将使用剩余的可用 ACL 之一。 这是一个需要考虑的附加因素。
方案:移动文件
想象一下,已逐个与个人共享 10,000 个文件。 如果这些文件稍后移动到单个文件夹中,则系统不会自动合并权限条目以仅应用文件夹的权限。 相反,除非用户手动更正权限,否则权限将保持混乱。 这是因为出于安全考虑,未实现权限层次结构的自动还原。
在此方案中,在移动文件之前,接收者可以查看与其单独共享的 10,000 个文件中的每个文件。 将文件移动到文件夹中后,收件人仍可以看到 10,000 个文件以及包含的文件夹,这会更改访问结构。 这意味着,如果不进行手动清理,一旦达到 50,000 个项目的限制,OneDrive 中的大量共享可能会导致性能问题甚至作故障。
但是,仔细管理(将文件组织到具有匹配 ACL 的文件夹)可以帮助缓解这些问题。 同样需要注意的是,向用户公开实际的文件夹层次结构可能是不可取的,尤其是在使用元数据来表示所有内容而不是传统文件夹时。
方案:创建范围最小的文档库
创建具有单个权限范围的文档库,这意味着其中的所有项最初共享相同的访问控制设置。 接下来,将文件夹添加到此文档库。 若要与特定个人或组共享此文件夹,请中断文档库中的权限继承。 此作为文件夹创建新的唯一权限范围,使你可以设置与应用于文档库的访问控制不同的访问控制。
设置文件夹的权限后,可以继续将 75,000 个文件上传到此文件夹中。 其中每个文件都继承文件夹的 ACL,确保它们都具有与文件夹本身相同的权限。
因此,文档库现在具有两个唯一的权限范围:一个用于文档库的根目录,另一个用于文件夹。 此设置允许更精细地控制谁可以访问文件夹中的文件,同时为文档库的其余部分维护更简单的权限结构。
方案:管理多个文件夹的权限
为了有效地将类别映射到文件夹,你决定在每个文档库中创建 20 个文件夹。 其中每个文件夹都为特定类型的文档(例如合同或发票)指定,以便更好地组织并更轻松地访问。
若要确保每个文件夹都有其自己的唯一权限,请为每个文件夹设置单独的 ACL 设置。 这会导致文档库中总共有 21 个唯一权限范围:一个用于文档库的根目录,一个用于 20 个文件夹中的每个文件夹。 通过执行此作,可以控制谁有权访问每个类别的文件,从而提供更安全、更有条理的结构。
若要避免性能问题并保持在系统限制范围内,请尽量减少具有唯一权限的单个文件的数量。 这意味着,大多数文件继承其各自文件夹的权限,使唯一权限条目总数保持在 5,000 个限制内。
管理权限范围的提示
若要在 SharePoint 中有效管理权限范围,请遵循以下建议:
利用继承最大程度地减少唯一权限范围的数量。
共享文件夹而不是单个文件,以减少唯一范围的数量。
确保需要唯一权限的文件夹在超过 100,000 个项目之前共享。
对于开发人员,请定期查看和最小化唯一权限范围,使用组并监视性能,以保持最佳 SharePoint 性能。
对于最终用户,请使用默认权限组、查看访问请求并定期进行审核,以保持 SharePoint 权限干净高效。
使用 SharePoint 组和Microsoft Entra有效地管理用户引用和权限。
资源
SharePoint 限制 - 服务说明
《如何在游戏中获得小小突击队勋章》(小小突击队勋章获取方法及关键技巧)
怪物联盟攻略