Аудит прав доступа#
Аудит прав доступа предназначен для анализа изменений, связанных с ролями, профилями и назначениями пользователей.
Это не отдельный механизм регистрации событий, а специализированная форма чтения и интерпретации уже существующих аудиторских данных.
Форма позволяет просмотреть:
изменения назначений профилей пользователям;
изменения связей профилей с ролями;
изменения прав роли на администрируемые объекты;
изменения серверных прав роли по классам.
Форма открывается по пути:
Аудит > Аудит прав доступа.
Интерфейс аудита прав доступа#
Интерфейс аудита прав доступа строится в зависимости от выбранного вида объекта: Пользователь, Профиль или Роль.
В верхней части формы расположены основные фильтры:
Поле |
Описание |
|---|---|
|
Вид объекта: пользователь, профиль или роль |
|
Объект выбранного вида |
|
Период отбора записей |
|
Примечание |
Обязательный порядок работы:
Выберите Вид объекта.
Выберите объект выбранного вида.
При необходимости задайте период и примечание.
Примечание
Если попытаться выбрать объект без заполненного поля Вид объекта, система выдаст сообщение Сначала необходимо задать Вид объекта.
Период и примечание не являются обязательными, но для больших объемов аудита период лучше задавать всегда.
Вид объекта «Пользователь»#
При выборе вида объекта Пользователь форма отображает вкладку Изменения со списком изменений по выбранному пользователю.
В таблице отображаются назначения и снятия профилей пользователя.
Колонка |
Описание |
|---|---|
Вид объекта |
Вид связанного объекта, по которому зафиксировано изменение |
Вид изменения |
Тип изменения, например назначение или снятие профиля |
Объект |
Объект, связанный с изменением |
Дата изменения |
Дата и время изменения |
Изменивший пользователь |
Пользователь, выполнивший изменение |
Примечание |
Дополнительное примечание к записи аудита |
IP-адрес |
IP-адрес клиента, с которого выполнено изменение |
Для строк списка доступна операция Изменения по объекту. Она позволяет перейти к аудиту выбранного связанного объекта, например профиля.
Вид объекта «Профиль»#
При выборе вида объекта Профиль форма отображает вкладку Изменения со списком изменений по выбранному профилю.
В таблице отображаются:
назначение ролей профилю;
снятие ролей с профиля;
назначение пользователей на профиль;
снятие пользователей с профиля.
Колонка |
Описание |
|---|---|
Вид объекта |
Вид связанного объекта, по которому зафиксировано изменение |
Объект |
Объект, связанный с изменением |
Вид изменения |
Тип изменения, например назначение или снятие |
Дата изменения |
Дата и время изменения |
Изменивший пользователь |
Пользователь, выполнивший изменение |
Примечание |
Дополнительное примечание к записи аудита |
IP-адрес |
IP-адрес клиента, с которого выполнено изменение |
Для строк списка доступна операция Изменения по объекту. Она позволяет перейти к аудиту выбранного пользователя или роли.
Вид объекта «Роль»#
При выборе вида объекта Роль форма отображает две вкладки:
Изменения прав роли на БО;
Изменения серверных прав роли.
Вкладки используются для анализа разных типов прав роли.
Изменения прав роли на БО#
Вкладка Изменения прав роли на БО показывает изменения прав роли по администрируемым объектам и элементам администрирования.
Левая часть вкладки содержит дерево администрируемых объектов. Над деревом доступны фильтры:
Поле |
Описание |
|---|---|
Код |
Фильтр по коду администрируемого объекта |
Наименование |
Фильтр по наименованию администрируемого объекта |
В дереве отображаются следующие колонки:
Колонка |
Описание |
|---|---|
Администрируемый объект |
Наименование администрируемого объекта или элемента администрирования |
Системное имя |
Системное имя администрируемого объекта |
Модуль |
Модуль, к которому относится объект |
Правая часть вкладки содержит список изменений по выбранному администрируемому объекту.
Для списка доступен чекбокс flt_bInclude С входящими.
Примечание
Чекбокс С входящими используется, когда в дереве выбран администрируемый объект. Он позволяет показать изменения не только выбранного объекта, но и входящих в него элементов администрирования.
В списке изменений отображаются следующие колонки:
Колонка |
Описание |
|---|---|
Объект |
Администрируемый объект или элемент администрирования |
Тип привилегии |
Тип измененной привилегии |
Сист. имя привилегии |
Системное имя привилегии |
Привилегия |
Отображаемое наименование привилегии |
Изменивший пользователь |
Пользователь, выполнивший изменение |
Дата изменения |
Дата и время изменения |
Сист. имя атрибута |
Системное имя измененного атрибута |
Наименование атрибута |
Отображаемое наименование измененного атрибута |
Старое значение |
Значение до изменения |
Новое значение |
Значение после изменения |
Примечание |
Дополнительное примечание к записи аудита |
IP-адрес |
IP-адрес клиента, с которого выполнено изменение |
Изменения серверных прав роли#
Вкладка Изменения серверных прав роли показывает изменения серверных прав роли по классам.
Левая часть вкладки содержит список классов.
Колонка |
Описание |
|---|---|
Класс |
Класс, по которому отображаются изменения серверных прав |
Правая часть вкладки содержит список изменений серверных прав по выбранному классу.
Колонка |
Описание |
|---|---|
Класс |
Класс, по которому изменялись серверные права |
Действие |
Действие или тип серверного права |
Изменивший пользователь |
Пользователь, выполнивший изменение |
Дата изменения |
Дата и время изменения |
Сист. имя атрибута |
Системное имя измененного атрибута |
Наименование атрибута |
Отображаемое наименование измененного атрибута |
Старое значение |
Значение до изменения |
Новое значение |
Значение после изменения |
Примечание |
Дополнительное примечание к записи аудита |
IP-адрес |
IP-адрес клиента, с которого выполнено изменение |
Настройка и включение аудита#
Аудит прав доступа не является отдельной таблицей. Это витрина поверх аудита данных по структурам прав доступа.
Для включения аудита используется штатная операция:
Аудит > Аудит прав доступа > Включить аудит для структур прав доступа.
Операция syncAudStructure() выполняет следующие действия:
включает признак Вести аудит для классов
Btk_User,Btk_AcProfile,Btk_AcRole,Btk_AcObject;генерирует или синхронизирует audit-таблицы для этих root-классов, если они невалидны;
включает аудит для коллекций
Btk_AcUserGrantиBtk_AcProfileGrant.
После выполнения операции форма Аудит прав доступа начинает читать данные из:
aud.Btk_User_dzAud;aud.Btk_AcProfile_dzAud;aud.Btk_AcRole_dzAud;aud.Btk_AcObject_dzAud;связанных audit-таблиц.
Проверить состояние аудита для основных классов можно запросом:
select sname, bauditable, bsyncaudit
from btk_class
where sname in ('Btk_User', 'Btk_AcProfile', 'Btk_AcRole', 'Btk_AcObject');
Внимание
Если аудит включается вручную через карточку класса, необходимо также синхронизировать audit-таблицу. Иначе признак аудита может быть установлен, но форма Аудит прав доступа не увидит историю изменений.
Состав данных по видам объектов#
Пользователь#
Для пользователя отображаются события:
назначение профиля пользователю;
снятие профиля с пользователя.
Источник данных — аудит пользователя и изменения коллекции Btk_AcUserGrant.
Профиль#
Для профиля отображаются события:
назначение роли профилю;
снятие роли с профиля;
назначение пользователя на профиль;
снятие пользователя с профиля.
Источники данных:
аудит сущности
Btk_AcProfileGrant;связанные записи аудита пользователя, если изменение затрагивает профиль пользователя.
Роль#
Для роли отображаются:
изменения объектных прав;
изменения элементарных привилегий;
изменения групп элементарных привилегий;
изменения прав на перевод состояния;
изменения настроек администрируемых объектов;
изменения серверных прав по классам.
Формирование данных#
Форма не создает события и не хранит собственные данные. Она выполняет выборку по существующим источникам аудита.
Собственной таблицы хранения у формы Btk_AcRightsAudit нет. Основной источник данных — таблицы аудита формата _dzAud.
Источник зависит от выбранного вида объекта:
Вид объекта |
Источник данных |
|---|---|
Пользователь |
Аудит пользователя и коллекции |
Профиль |
Аудит сущности |
Роль |
Таблицы аудита данных |
Программная логика#
Собственных методов регистрации у формы нет.
Используются существующие аудиты, дополненные логикой:
выборки данных;
отображения вкладок;
фильтрации по выбранному виду объекта;
навигации между связанными объектами;
перехода к изменениям по выбранному объекту.
Основная логика формы реализована в Btk_AcRightsAuditAvi.
Главная карточка формы — Btk_AcRightsAuditAvi.CardHeader.
Особенности эксплуатации#
Аудит прав доступа зависит от полноты исходных данных аудита. Если аудит для связанных сущностей не включен или данные уже очищены, форма может показывать неполную историю изменений.
Для корректного анализа важно согласовывать сроки хранения между связанными сущностями:
пользователями;
профилями;
ролями;
администрируемыми объектами;
связанными таблицами аудита.
Если сроки хранения отличаются, история изменений прав может быть неполной: например, назначения пользователя уже очищены, а изменения профиля еще доступны.
Хранение и очистка#
Очистка выполняется на уровне исходных аудитов, а не на уровне формы аудита прав доступа.
История изменений прав доступа является критичной, поэтому рекомендуется увеличенный срок хранения:
180–365 дней — рабочий ориентир;
более длительное хранение — при наличии требований к прослеживаемости;
старые данные — через архивирование.
При очистке необходимо:
учитывать связи между пользователями, профилями и ролями;
удалять данные согласованно;
не нарушать целостность истории изменений прав.
Оценку объема следует выполнять по таблицам-источникам.
Рекомендуется анализировать:
количество изменений прав по дням;
распределение событий по ролям, профилям и пользователям;
суммарный размер таблиц
_dzAud;глубину хранения по связанным сущностям.