SharePoint 中的唯一权限提供了控制功能,但也可能造成复杂性和用户之间的潜在混淆。本文将探讨独特权限是如何产生的、它们的影响,以及最重要的是,作为管理员有效管理它们的最佳实践。
什么是 SharePoint 网站的唯一权限?
默认情况下,SharePoint 文件和文件夹继承其所属站点的权限。这意味着,所有拥有添加/编辑/删除权限的网站成员用户都可以添加/编辑/删除该网站内的任何文件或文件夹。
唯一权限是自定义权限:更改特定文件或文件夹的安全性会创建唯一权限。比方说,你对所有团队成员隐藏了该文件或文件夹,只允许部分成员使用:你就赋予了它唯一权限。但这并不是唯一权限出现的唯一方式。
文件怎么会有唯一权限?
您的 SharePoint 站点最终可能会有独特的权限,这有几个原因。
- 手动设置唯一权限
这是最常见的情况,也是我们前面提到的情况。如果你决定使用 管理访问 选项,你就为该文件或文件夹设置了唯一的权限。

如果您想了解有关为 SharePoint 库、文件夹和文件手动设置权限的所有信息,请参阅以下内容 教程.
- 共享内容设置的独特权限
当你的团队成员需要与团队外的人共享文件时,你不希望他们通过电子邮件发送巨大的附件--那太 2010 了!您希望他们使用共享链接来共享这些文件。根据创建共享链接的方式,您可能需要授予独特的权限。使用 具体人员 选择。

- 自动设置唯一权限
如果您使用的第三方解决方案触及 SharePoint 权限,如 CB Dynamics 365 to SharePoint Permissions Replicator 通过 Connecting Software,您将拥有该工具自动设置的独特权限。
在 SharePoint 中设置唯一权限有何不妥?
一般来说,唯一权限并没有什么问题。你只需要注意两点:
- 当您手动创建唯一权限时,例如从文件夹中移除团队成员组时,文件夹将成为一个独立的实体,拥有自己的安全性和权限。从那时起,任何站点级权限更改(如向站点添加新成员)将不再适用于该文件夹,而需要手动更改。这可能会造成大量工作,也是安全方面的一个故障点。
- 微软限制了唯一权限的数量。如果你在许多文件和文件夹中手动设置权限,或者自动设置权限,就应该注意这一点。好消息是,有一些工具可以绕过这些限制,正如文章中讨论的那样 SharePoint权限限制的解决方案和变通方法.
如何列出 SharePoint 网站的唯一权限?
要查看网站级别的所有唯一权限,请按以下步骤操作:
- 齿轮图标 > 站点权限

- 点击 高级权限设置

- 这将打开网站级权限列表。在用户及其权限列表的正上方,请查看以下信息:"本网站某些内容的权限与您在这里看到的不同"。点击 显示这些项目 请注意,如果您没有看到该信息,说明您还没有任何独特的权限。

- 您将看到网站上所有具有唯一权限的列表或库。在本例中,我们为文件和文件夹设置了一些独特的权限。 证件 点击 查看例外情况 链接。

- 现在你将看到该库中具有唯一权限的所有文件和文件夹。要查看权限,请单击相应的 管理 权限 链接。

- 最后,你会看到该文件或文件夹的唯一权限。

如何删除文件和文件夹的唯一权限?
要删除唯一权限并恢复文件或文件夹的继承权,请按照以下步骤操作:
- 点击 删除唯一权限在色带中。

- 点击 好的 弹出警告信息 "您将继承父文件夹或文档库的权限。任何自定义权限都将丢失"。

- 点击 好的 弹出警告信息 "您将继承父文件夹或文档库的权限。任何自定义权限都将丢失"。
SharePoint 权限最佳实践
#1 最小化手动破坏继承
- 避免不必要的子网站: 每个子网站都有可能偏离其父网站的权限。除非必要,否则应尽量减少创建具有独特权限的子网站。
- 将唯一权限限制在较低的层次结构级别: 如果需要独特的权限,则应将其应用于层次结构的较低层次(如库、列表或甚至项),而不是站点级别。
#2 定期权限审核和清理
- 进行定期审查: 定期检查和审核 SharePoint 环境中的权限。识别并消除不必要的唯一权限。
- 利用 PowerShell 脚本 使用 PowerShell 脚本自动识别唯一权限并简化审计流程。
您可以编写脚本来
- 枚举具有唯一权限的所有站点、列表和项目/库(见下文示例)。
- 识别可访问特定 SharePoint 资源的所有用户和组。
- 打破继承,根据管理政策设置自定义权限。
- 删除不需要的唯一权限,恢复为继承权限,以简化管理。
让我们来看一个示例。在下面的 PowerShell 脚本中,您要识别 SharePoint 列表中具有唯一权限的项目。我将在脚本后附上代码分解。
# 示例获取具有唯一权限的列表中所有项目的列表
$siteURL = "https://yoursite.sharepoint.com/sites/yoursitecollection"
$listName = "您的清单"
Connect-PnPOnline -Url $siteURL -UseWebLogin
$listItems = Get-PnPListItem -List $listName -PageSize 500
foreach ($listItems 中的 $item) {
$hasUniquePermissions = Get-PnPListItemPermission -List $listName -ListItemId $item.Id -Includes HasUniqueRoleAssignments
如果 ($hasUniquePermissions.HasUniqueRoleAssignments -eq $true) {
Write-Host "ID 为 $($item.Id)的项目具有唯一权限"。
}
}
下面是我们在此 PowerShell 脚本中的操作:
-
设置变量:
- $siteURL:存储 SharePoint 网站的 URL(黄色突出显示部分应替换为实际 URL)。
- $listName:存储要检查的特定列表的名称(用实际列表名称替换)。
- 连接至 SharePoint:
- Connect-PnPOnline:使用网络登录凭据建立与 SharePoint 网站的连接。
- 检索列表项目:
- Get-PnPListItem:该命令从指定列表($listName)中最多检索 500 个项目。
- 循环通过项目:
- foreach($item in $listItems):该循环遍历从列表中获取的每个项目。
- 已检查唯一权限:
- Get-PnPListItemPermission:该命令检查分配给当前列表项($item.Id)的权限。包括 HasUniqueRoleAssignments 参数专门查找唯一权限。
- 已识别的唯一权限:
- if ($hasUniquePermissions.HasUniqueRoleAssignments -eq $true):此条件语句检查前一条命令返回的 HasUniqueRoleAssignments 属性是否为 true。
- 如果是,则表示当前项目拥有分配给它的唯一权限。
- 输出:
- Write-Host "ID 为 $($item.Id)的项目具有唯一权限":如果项目具有唯一权限,这一行将向控制台写入一条信息,说明项目的 ID。
#3 提供充分的培训和指导
- 用户培训: 对用户进行培训,让他们了解独特权限的影响,并教会他们如何适当地共享和申请访问权限。
- 发布权限政策: 制定并宣传明确的权限政策和程序。
结论
作为管理员,了解唯一权限可以让您更精确地管理 SharePoint 的安全性。按照本文概述的步骤,您可以有效地识别、管理甚至根据需要删除唯一权限。
特别是在使用权限复制工具或采用自动化时,必须牢记微软对唯一权限数量的限制。使用 正确的战略和工具 以确保您的 SharePoint 环境在这些限制条件下仍能保持安全和易于管理。
您对管理 SharePoint 中的唯一权限有疑问吗?请在下面的评论中告诉我们!
关于作者

作者 Ana Neto在Connecting Software担任技术顾问。
"自 1997 年以来,我一直是一名软件工程师,最近开始喜欢写作和公开演讲。您对本文有任何问题或评论吗?欢迎在下方留言!"