Cuando intenta romper la herencia de permisos en una subcarpeta de SharePoint, el cambio a menudo no se aplica. La carpeta sigue heredando permisos de su sitio o biblioteca principal. Esto sucede porque SharePoint impone un límite en los permisos únicos por elemento o por contenedor. Este artículo explica la causa raíz en el modelo de permisos de SharePoint y proporciona una solución directa mediante PowerShell o la configuración del sitio.
Puntos clave: Romper la herencia de permisos en una subcarpeta
- Límite de permisos únicos de SharePoint: SharePoint detiene la creación de nuevas rupturas de herencia cuando un sitio o lista alcanza los 50.000 permisos únicos.
- Administrador de la colección de sitios > Permisos del sitio > Comprobar permisos: Use esta herramienta para verificar si la herencia está realmente rota o pendiente.
- SharePoint Online Management Shell (PowerShell): Use el cmdlet
Set-PnPListItemPermissionpara forzar la ruptura de la herencia en una subcarpeta.
Por qué SharePoint se niega a romper la herencia en una subcarpeta
SharePoint Online tiene un límite estricto de 50.000 ámbitos de permisos únicos por colección de sitios. Se crea un ámbito de permisos único cada vez que se rompe la herencia en una lista, biblioteca, carpeta o elemento. Cuando intenta romper la herencia en una subcarpeta después de superar este límite, SharePoint ignora la solicitud de forma silenciosa. La carpeta sigue heredando permisos de su elemento principal y no aparece ningún error en la interfaz del navegador.
Este límite existe para proteger el rendimiento. Cada ámbito único requiere una entrada de lista de control de acceso independiente en la base de datos. Más allá de 50.000 ámbitos, los tiempos de consulta se degradan y el aprovisionamiento del sitio puede fallar. El límite se aplica por colección de sitios, no por sitio.
El papel del umbral de permisos de la colección de sitios
El límite de 50.000 ámbitos está documentado en los límites y restricciones de SharePoint. Afecta a todas las rupturas de herencia de permisos, no solo a las carpetas. Si ya tiene muchos permisos únicos en listas, bibliotecas de documentos o elementos, el siguiente intento de ruptura en cualquier subcarpeta fallará. La interfaz no le advierte que ha alcanzado el límite. Solo lo nota cuando la carpeta sigue mostrando “Permisos heredados” después de hacer clic en “Dejar de heredar permisos”.
Cómo funcionan realmente las rupturas de herencia
Cuando rompe la herencia en una carpeta, SharePoint copia los permisos del elemento principal a esa carpeta y crea un nuevo ámbito de permisos único. Este ámbito cuenta para el límite de 50.000. Si la lista o biblioteca principal ya tiene muchos ámbitos rotos, la operación puede superar el límite. SharePoint entonces cancela la operación y deja la carpeta en estado heredado.
Pasos para forzar la ruptura de la herencia en una subcarpeta
Antes de intentar romper la herencia, compruebe el recuento actual de permisos únicos. Luego use uno de los métodos siguientes para aplicar la solución.
Método 1: Comprobar el recuento actual de permisos únicos
- Abra la colección de sitios en el centro de administración de SharePoint
Vaya a Centro de administración de SharePoint > Sitios activos. Seleccione el sitio que contiene la subcarpeta. - Ejecute el informe de comprobación de permisos
En la configuración del sitio, elija Permisos del sitio > Comprobar permisos. Introduzca el nombre de la carpeta y una cuenta de usuario. Si el resultado muestra “Heredado del elemento principal”, la herencia no está rota. - Use PowerShell para contar ámbitos únicos
Abra SharePoint Online Management Shell y ejecute:Connect-SPOService -Url https://yourtenant-admin.sharepoint.com
Luego ejecute:Get-SPOSite -Identity "https://yourtenant.sharepoint.com/sites/yoursite" | Select-Object -ExpandProperty Owner
Esto no muestra directamente el recuento de ámbitos. Para obtener el recuento, use PnP PowerShell:Connect-PnPOnline -Url "https://yourtenant.sharepoint.com/sites/yoursite" -InteractiveGet-PnPList | ForEach-Object { $_.HasUniqueRoleAssignments } | Measure-Object
Esto muestra el número de listas con permisos únicos. Para los elementos, use:Get-PnPListItem -List "Documents" -PageSize 5000 | Where-Object { $_.HasUniqueRoleAssignments } | Measure-Object
Método 2: Usar PnP PowerShell para romper la herencia
- Conéctese al sitio
EjecuteConnect-PnPOnline -Url "https://yourtenant.sharepoint.com/sites/yoursite" -Interactive - Obtenga el objeto de carpeta
Ejecute$folder = Get-PnPFolder -Url "Shared Documents/YourSubfolder" - Rompa la herencia en la carpeta
EjecuteSet-PnPListItemPermission -List "Shared Documents" -Identity $folder.Name -BreakInheritance
Si también desea copiar los permisos del elemento principal, agregueCopyRoleAssignmentsal comando:Set-PnPListItemPermission -List "Shared Documents" -Identity $folder.Name -BreakInheritance -CopyRoleAssignments - Verifique el cambio
EjecuteGet-PnPListItem -List "Shared Documents" -Identity $folder.Name | Select-Object HasUniqueRoleAssignments
Si el resultado esTrue, la herencia está rota.
Método 3: Reducir los permisos únicos para hacer espacio
- Identifique listas o bibliotecas con muchos permisos únicos
Ejecute los comandos de recuento de PnP PowerShell del Método 1 para encontrar los contenedores más pesados. - Restablezca la herencia en los elementos donde ya no se necesitan permisos únicos
Para cada elemento, ejecute:Set-PnPListItemPermission -List "ListName" -Identity $item.Id -InheritPermissions
Debe recorrer los elementos. Por ejemplo:$items = Get-PnPListItem -List "LargeList" -PageSize 5000
foreach ($item in $items) {
if ($item.HasUniqueRoleAssignments) {
Set-PnPListItemPermission -List "LargeList" -Identity $item.Id -InheritPermissions
}
} - Vuelva a comprobar el recuento de permisos únicos
Ejecute de nuevo los comandos de medición para confirmar que está por debajo de 50.000. - Rompa la herencia en la subcarpeta usando la interfaz del navegador
Vaya a la carpeta, seleccione … > Administrar acceso > Configuración avanzada > Dejar de heredar permisos.
Si SharePoint sigue negándose a romper la herencia
El botón “Dejar de heredar permisos” no hace nada
Si hace clic en el botón y la página se actualiza pero la herencia permanece, ha alcanzado el límite de 50.000 ámbitos. Siga el Método 3 para reducir los permisos únicos en otra parte de la colección de sitios. Luego inténtelo de nuevo.
La herencia se rompe pero se revierte después de unas horas
Esto ocurre cuando un trabajo de temporizador o un proceso de sincronización restablece los permisos. Compruebe si algún receptor de eventos personalizado o herramienta de copia de seguridad de terceros está restableciendo la herencia. También verifique que ningún administrador de la colección de sitios tenga un script en ejecución que herede permisos según una programación.
La herencia de permisos muestra “Rota” pero los usuarios no pueden acceder a la carpeta
Cuando rompe la herencia sin copiar las asignaciones de roles, se eliminan todos los permisos existentes. La carpeta solo queda accesible para los administradores de la colección de sitios. Para solucionarlo, agregue los usuarios o grupos necesarios mediante Administrar acceso > Agregar personas o ejecutando Set-PnPListItemPermission -List "Shared Documents" -Identity $folder.Name -User "user@domain.com" -AddRole "Contribute".
Permisos heredados vs. únicos: diferencias clave
| Elemento | Permisos heredados | Permisos únicos |
|---|---|---|
| Almacenamiento de permisos | Se almacena una vez en el nivel principal | Se almacena por separado para cada elemento secundario |
| Impacto en el rendimiento | Mínimo | Degrada la velocidad de consulta más allá de 50.000 ámbitos |
| Esfuerzo de administración | Bajo — cambie el principal, todos los secundarios se actualizan | Alto — cada secundario debe administrarse individualmente |
| Límite de SharePoint | Ninguno | 50.000 ámbitos únicos por colección de sitios |
| Ideal para | La mayoría de las carpetas y elementos | Solo cuando elementos específicos necesitan acceso restringido |
Los permisos heredados son el enfoque predeterminado y recomendado para la mayoría del contenido de SharePoint. Use permisos únicos con moderación para mantenerse por debajo del límite de 50.000 ámbitos. Cuando necesite permisos únicos, rompa la herencia en carpetas en lugar de elementos individuales para reducir el recuento total de ámbitos.
Ahora puede romper la herencia en una subcarpeta comprobando primero el recuento de permisos únicos y usando PowerShell para forzar la operación. A continuación, revise su colección de sitios para detectar listas o bibliotecas con permisos únicos excesivos y restablezca los que ya no necesite. Como sugerencia avanzada, programe un script de PowerShell mensual que informe el número de permisos únicos por colección de sitios para que pueda planificar las rupturas de herencia antes de alcanzar el límite.