---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ydb.tech/docs/en/yql/reference/syntax/create-resource-pool-classifier.md?version=main
  - https://ydb.tech/docs/ru/yql/reference/syntax/create-resource-pool-classifier.md?version=main
sourcePath: ru/core/yql/reference/syntax/create-resource-pool-classifier.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# CREATE RESOURCE POOL CLASSIFIER

`CREATE RESOURCE POOL CLASSIFIER` создаёт [пул классификаторов ресурсов](https://ydb.tech/docs/ru/concepts/glossary.md?version=main#resource-pool-classifier.md).

## Синтаксис

```yql
CREATE RESOURCE POOL CLASSIFIER <name>
WITH ( <parameter_name> [= <parameter_value>] [, ... ] )
```

- `name` — имя создаваемого классификатора пула ресурсов. Должно быть уникальным. Имя не должно содержать символы, запрещённые для схемных объектов.
- `WITH ( <parameter_name> [= <parameter_value>] [, ... ] )` — позволяет задавать значения параметров, определяющих поведение классификатора пула ресурсов.

### Параметры

* `RANK` (Int64) — опциональное поле, задающее порядок выбора классификатора пула ресурсов. Если значение не указано, берётся максимальный существующий `RANK` и к нему прибавляется 1000. Допустимые значения: уникальное число в диапазоне $[0, 2^{63}-1]$.
* `RESOURCE_POOL` (String) — обязательное поле, задающее имя пула ресурсов, в который будут отправлены запросы, удовлетворяющие критериям классификатора.
* `MEMBER_NAME` (String) — опциональное поле, определяющее, какой пользователь или группа пользователей будут отправлены в указанный пул ресурсов. Значение сравнивается с SID пользователя или любым SID группы из его токена аутентификации; подробнее о формате см. [ниже](#member-name-format). Если поле не указано, классификатор игнорирует `MEMBER_NAME`, и классификация осуществляется по другим признакам.

### Формат MEMBER_NAME {#member-name-format}

`MEMBER_NAME` сравнивается посимвольно с [SID](https://ydb.tech/docs/ru/concepts/glossary.md?version=main#access-sid) пользователя или любым SID группы из его токена аутентификации. Формат SID зависит от того, каким способом пользователь пришёл в систему.

- **Встроенные пользователи YDB (логин/пароль)** — SID совпадает с именем пользователя, без суффикса. Например, `user1`. Подробнее — [Аутентификация по логину и паролю](https://ydb.tech/docs/ru/security/authentication.md?version=main#static-credentials).
- **Облачные пользователи (Access Service)** — SID имеет вид `<subject_id>@as`, где `<subject_id>` — идентификатор пользователя в IAM. Суффикс задаётся параметром [`access_service_domain`](https://ydb.tech/docs/ru/reference/configuration/auth_config.md?version=main#iam-auth-config) (по умолчанию `as`). Например, `ajeb89hv69nujke769fa@as`. Подробнее — [Аутентификация с использованием стороннего IAM-провайдера](https://ydb.tech/docs/ru/security/authentication.md?version=main#iam).
- **LDAP** — SID имеет вид `<логин>@<домен>`, где домен задаётся параметром [`ldap_authentication_domain`](https://ydb.tech/docs/ru/reference/configuration/auth_config.md?version=main#ldap-auth-config) (по умолчанию `ldap`). Например, `user1@ldap`. Подробнее — [Аутентификация с использованием LDAP-каталога](https://ydb.tech/docs/ru/security/authentication.md?version=main#ldap).
- **Внешние провайдеры идентификации (OIDC)** — SID имеет вид `<логин>@<домен>`, где домен задаётся параметром `external_idp_authentication_domain` в [конфигурации аутентификации](https://ydb.tech/docs/ru/reference/configuration/auth_config.md?version=main) (по умолчанию `sso`). Например, `user1@sso`.

В качестве значения можно указать как SID конкретного пользователя, так и SID группы. Ко всем аутентифицированным пользователям автоматически добавляется группа `all-users@well-known` — её удобно использовать, если нужно направить в пул запросы от всех аутентифицированных клиентов.

## Замечания {#remarks}

Если в DDL для создания классификатора пула ресурсов не указан `RANK`, то по умолчанию ему будет присвоено значение $RANK = MAX(existing\_ranks) + 1000$. Все значения `RANK` должны быть уникальными, чтобы обеспечить строго детерминированный порядок выбора пула ресурсов в случае конфликтующих условий. Такое поведение выбрано для возможности добавлять новые классификаторы пулов ресурсов между уже существующими.

Также возможно наличие классификатора, который ссылается на несуществующий пул ресурсов или к которому у пользователя нет доступа. В таком случае такие классификаторы будут пропускаться.

С ограничениями на число классификаторов можно ознакомиться на странице [ограничений](../../../../concepts/limits-ydb#resource_pool).

## Разрешения

Требуется [разрешение](https://ydb.tech/docs/ru/yql/reference/syntax/grant.md?version=main#permissions-list) `ALL` на базу данных

Пример выдачи такого разрешения:

```yql
GRANT 'ALL' ON `/my_db` TO `user1@domain`;
```

## Примеры {#examples}

```yql
CREATE RESOURCE POOL CLASSIFIER olap_classifier WITH (
    RANK=1000,
    RESOURCE_POOL="olap",
    MEMBER_NAME="user1@domain"
)
```

В примере выше создаётся классификатор пула ресурсов с именем `olap_classifier`, который направляет запросы от пользователя `user1@domain` в пул ресурсов с именем `olap`. Запросы от всех остальных пользователей будут отправляться в пул ресурсов `default`, при условии, что других классификаторов пулов ресурсов не существует.

## См. также

* [Workload Manager — управление потреблением ресурсов](https://ydb.tech/docs/ru/dev/resource-consumption-management.md?version=main)
* [ALTER RESOURCE POOL CLASSIFIER](https://ydb.tech/docs/ru/yql/reference/syntax/alter-resource-pool-classifier.md?version=main)
* [DROP RESOURCE POOL CLASSIFIER](https://ydb.tech/docs/ru/yql/reference/syntax/drop-resource-pool-classifier.md?version=main)
