-
Доступ определяется в соответствии с правилами, прописанными в таблице rbac.rules, если в таблице adm.configs для ключа “authorization.mode” установлено значение “rbac”.
-
Если таблица rbac.rules пуста, никакие правила не действуют и никакой пользователь никуда доступа не имеет.
При появлении хотя бы одной записи в ней, появляются правила и доступ определяется в соответствии с ними. -
Правила задаются в админ-панели Права доступа → Rbac.
Более подробно можно ознакомиться в инструкции “Руководство администратора” в пункте: “A.1.1. Подключение доменов и групп.” -
Правила также можно заполнять вручную для расширенной настройки прав, выполняя команды INSERT into rbac.rules … непосредственно в БД.
При ручных вставках необходимо понимать, что значение NULL в каком-либо столбце таблицы rbac.rules означает “Для всех”.
Правила работают по принципу “ИЛИ”: если хотя бы одно правило разрешает доступ к датасету\группе\дэшборду, значит доступ будет предоставлен, даже если другие правила его ограничивают.К примеру, запись, содержащая NULL в столбце user_domain, будет означать “для любых доменов”
Соответственно, запись, содержащая NULL во всех столбцах, разрешает доступ ВСЕМ ко ВСЕМУ и фактически аннулирует все остальные правила.
Выставление требуемого пользователя “Админом” при работе с включенным RBAC.
При работе по LDAP в adm.users править access_level не требуется, так как поступившая информация для проверки пользователя через AD перезапишет указанную информацию.
Необходимо настраивать роль “admin” только в таблице rbac.domain_group_admin_maps.
Пример:
INSERT INTO rbac.domain_group_admin_maps (user_domain, user_group, access_level) VALUES(‘GROUPS’, ‘GROUPS’, ‘admin’);
При работе с включенным RBAC роль “admin” из группы rbac.domain_group_admin_maps является приоритетнее выставленных прав в разделе rbac.
Для того чтобы Админу выставить абсолютные права на просмотр необходимо в таблице rbac.rules добавить строку с группой и доменом админа.
Пример:
INSERT INTO rbac.rules (user_domain, user_group) VALUES(‘GROUPS’, ‘DOMAIN’);