Поделиться через


Получение SACL объекта

Дескриптор безопасности объекта в службах домен Active Directory может содержать список системного управления доступом (SACL). A SACL содержит записи управления доступом (ACEs), которые указывают типы попыток доступа, которые создают записи аудита в журнале событий безопасности контроллера домена. Помните, что SACL создает записи журнала только на контроллере домена, где произошла попытка доступа, а не на каждом контроллере домена, который содержит реплика объекта.

Чтобы задать или получить SACL из дескриптора безопасности объекта, в маркере доступа запрашивающего потока необходимо включить привилегию SE_SECURITY_NAME . Группа администраторов имеет эту привилегию по умолчанию и может быть назначена другим пользователям или группам. Дополнительные сведения см. в разделе SACL Access Right.

Чтобы получить и задать SACL объекта каталога, используйте интерфейс IADsSecurityDescriptor . С помощью C++метод IADsSecurityDescriptor::get_SystemAcl возвращает указатель IDispatch. Вызовите запросInterface на этот указатель IDispatch, чтобы получить интерфейс IADsAccessControlList и использовать методы в этом интерфейсе для доступа к отдельным acEs в SACL. Дополнительные сведения о процедуре изменения SACL, аналогичной процедуре изменения DACL, см. в разделе "Настройка прав доступа к объекту".

Чтобы перечислить acEs в SACL, используйте метод IADsAccessControlList::get__NewEnum, который возвращает указатель IUnknown. Вызовите queryInterface на этот указатель IUnknown, чтобы получить интерфейс IEnumVARIANT. Используйте метод IEnumVARIANT::Next для перечисления acEs в ACL. Каждый элемент ACE возвращается как VARIANT, содержащий указатель IDispatch; помните, что элемент vt является VT_DISPATCH. Вызовите запросInterface на этот указатель IDispatch, чтобы получить интерфейс IADsAccessControlEntry для ACE. Используйте методы интерфейса IADsAccessControlEntry для задания или получения компонентов ACE.

Дополнительные сведения о SACLs см. в следующем разделе: