Базовая реализация наследования безопасности SharePoint
У меня есть 2 части на мой вопрос. Если у меня есть библиотека документов с документами 10 КБ, и все документы настроены на наследование разрешений от библиотеки, которая сама имеет явный ACL, включающий 500 пользователей (то есть библиотека не наследует защиту от сайта), то:
- Реплицируется ли список управления доступом в базе данных SharePoint для каждого документа, который настроен на наследование безопасности.
- Если я добавлю другого пользователя в список, потребуется ли SharePoint в его базовой реализации добавить этого пользователя дополнительно к спискам управления доступом 10K.
Если ответом на 1) является НЕТ, то, возможно, ответом на 2) будет сам НЕТ, но он все еще хотел быть уверен и поэтому перечислил их отдельно.
Причина, по которой это важно для нас:
- У нас будет много пользователей в DL и много документов в DL, наследующих безопасность. Если то же самое реплицируется для каждого документа, это означает, что потребуется больше места для хранения.
- Безопасность будет часто обновляться на DL через вызовы API SPI. Если для каждого документа требуется тиражирование, нам нужно учитывать время, необходимое для того же времени при выполнении вызовов API.
1 ответ
Согласно моим собственным исследованиям, ACL не реплицируется для объектов, наследующих безопасность в SharePoint.
ACL afaik хранится в таблицах Perms + RoleAssignment в базе данных контента SharePoint. Perms содержит запись только для объектов, не наследующих защиту от родителя (идентифицируемых столбцом ScopeId), а RoleAssignment содержит роли для ScopeIds в таблице Perms.
Таким образом, если объект наследует безопасность, у него не будет записей ACL, определенных в базе данных. Я написал сообщение в блоге, в котором рассказывает о своих исследованиях в том же контексте здесь: https://imbibe.in/blog/2018/01/08/permission-storage-sharepoints-database/