CREATE RESOURCE POOL CLASSIFIER
CREATE RESOURCE POOL CLASSIFIER создаёт пул классификаторов ресурсов.
Синтаксис
CREATE RESOURCE POOL CLASSIFIER <name>
WITH ( <parameter_name> [= <parameter_value>] [, ... ] )
name— имя создаваемого классификатора пула ресурсов. Должно быть уникальным. Имя не должно содержать символы, запрещённые для схемных объектов.WITH ( <parameter_name> [= <parameter_value>] [, ... ] )— позволяет задавать значения параметров, определяющих поведение классификатора пула ресурсов.
Параметры
RANK(Int64) — опциональное поле, задающее порядок выбора классификатора пула ресурсов. Если значение не указано, берётся максимальный существующийRANKи к нему прибавляется 1000. Допустимые значения: уникальное число в диапазоне .RESOURCE_POOL(String) — обязательное поле, задающее имя пула ресурсов, в который будут отправлены запросы, удовлетворяющие критериям классификатора.MEMBER_NAME(String) — опциональное поле, определяющее, какой пользователь или группа пользователей будут отправлены в указанный пул ресурсов. Значение сравнивается с SID пользователя или любым SID группы из его токена аутентификации; подробнее о формате см. ниже. Если поле не указано, классификатор игнорируетMEMBER_NAME, и классификация осуществляется по другим признакам.
Формат MEMBER_NAME
MEMBER_NAME сравнивается посимвольно с SID пользователя или любым SID группы из его токена аутентификации. Формат SID зависит от того, каким способом пользователь пришёл в систему.
- Встроенные пользователи YDB (логин/пароль) — SID совпадает с именем пользователя, без суффикса. Например,
user1. Подробнее — Аутентификация по логину и паролю. - Облачные пользователи (Access Service) — SID имеет вид
<subject_id>@as, где<subject_id>— идентификатор пользователя в IAM. Суффикс задаётся параметромaccess_service_domain(по умолчаниюas). Например,ajeb89hv69nujke769fa@as. Подробнее — Аутентификация с использованием стороннего IAM-провайдера. - LDAP — SID имеет вид
<логин>@<домен>, где домен задаётся параметромldap_authentication_domain(по умолчаниюldap). Например,user1@ldap. Подробнее — Аутентификация с использованием LDAP-каталога. - Внешние провайдеры идентификации (OIDC) — SID имеет вид
<логин>@<домен>, где домен задаётся параметромexternal_idp_authentication_domainв конфигурации аутентификации (по умолчаниюsso). Например,user1@sso.
В качестве значения можно указать как SID конкретного пользователя, так и SID группы. Ко всем аутентифицированным пользователям автоматически добавляется группа all-users@well-known — её удобно использовать, если нужно направить в пул запросы от всех аутентифицированных клиентов.
Замечания
Если в DDL для создания классификатора пула ресурсов не указан RANK, то по умолчанию ему будет присвоено значение . Все значения RANK должны быть уникальными, чтобы обеспечить строго детерминированный порядок выбора пула ресурсов в случае конфликтующих условий. Такое поведение выбрано для возможности добавлять новые классификаторы пулов ресурсов между уже существующими.
Также возможно наличие классификатора, который ссылается на несуществующий пул ресурсов или к которому у пользователя нет доступа. В таком случае такие классификаторы будут пропускаться.
С ограничениями на число классификаторов можно ознакомиться на странице ограничений.
Разрешения
Требуется разрешение ALL на базу данных
Пример выдачи такого разрешения:
GRANT 'ALL' ON `/my_db` TO `user1@domain`;
Примеры
CREATE RESOURCE POOL CLASSIFIER olap_classifier WITH (
RANK=1000,
RESOURCE_POOL="olap",
MEMBER_NAME="user1@domain"
)
В примере выше создаётся классификатор пула ресурсов с именем olap_classifier, который направляет запросы от пользователя user1@domain в пул ресурсов с именем olap. Запросы от всех остальных пользователей будут отправляться в пул ресурсов default, при условии, что других классификаторов пулов ресурсов не существует.