Провайдер групп#

Trino может сопоставлять имена пользователей с группами для более удобного управления доступом. Это сопоставление выполняется реализацией GroupProvider.

Реализация#

GroupProviderFactory отвечает за создание экземпляра GroupProvider. Он также определяет имя провайдера групп, используемое в конфигурационном файле.

GroupProvider содержит один метод, getGroups(String user), который возвращает Set<String> с именами групп. Этот набор имен групп становится частью объектов Identity и ConnectorIdentity, представляющих пользователя, и затем может использоваться через Системный контроль доступа.

Реализация GroupProvider и соответствующий ей GroupProviderFactory должны быть упакованы как плагин Trino и установлены в кластере.

Конфигурация#

После установки на координатор плагина, реализующего GroupProviderFactory, он настраивается с помощью файла etc/group-provider.properties. Все свойства, кроме group-provider.name, специфичны для реализации GroupProviderFactory.

Свойство group-provider.name используется Trino для поиска зарегистрированного GroupProviderFactory по имени, возвращаемому GroupProviderFactory.getName(). Остальные свойства передаются в виде map в GroupProviderFactory.create(Map<String, String>).

Пример файла конфигурации:

group-provider.name=custom-group-provider
custom-property1=custom-value1
custom-property2=custom-value2

При наличии этого файла Trino будет выполнять определение имен групп пользователей и сможет использовать эти имена групп при проверке правил контроля доступа.