Роли и полномочия

Права доступа к функциям системы определяются комбинацией ролей. При получении запроса система определяет роли, назначенные отправителю запроса, и разрешает ему только те действия, которые разрешены его ролями.

Система предоставляет фиксированный набор ролей.

Список ролей, назначаемых по умолчанию, настраивается в конфигурации с помощью параметра CORE_DEFAULT_ROLES. Если в системе включена аутентификация, для каждого отправителя запросов можно задать свой список ролей в составе авторизационного токена.

Список ролей в авторизационном токене определяется атрибутом roles. Пример атрибута и его значения: roles: ['env_datareader', 'env_datawriter'].

Порядок определения ролей

Полномочия отправителя запроса определяются в следующем порядке:

  • если аутентификация запросов включена и авторизационный токен содержит список ролей, используются роли из токена и их полномочия;
  • иначе (если аутентификация запросов включена, но токен не содержит список ролей или аутентификация отключена) используются роли из конфигурации и их полномочия.

При наличии нескольких ролей у отправителя запроса полномочия всех этих ролей объединяются. Если для отправителя запроса не нашлось ни одной роли, ему назначается роль env_none.

Набор ролей и их полномочий

В таблице ниже перечислены роли, предоставляемые системой, в порядке повышения уровня их полномочий. Для каждой роли перечислены доступные для нее запросы SQL+ и методы REST API.

Для исполнения запроса с помощью REST-метода query требуется роль, соответствующая типу запроса в теле сообщения. Чтобы определить нужную роль, используйте таблицу ниже, ориентируясь на списки запросов в столбце «Полномочия». Например, SELECT-запрос может быть исполнен только с ролью env_datareader или env_owner.

Роль Область применения Полномочия
env_none Минимальный доступ Доступные HTTP-запросы:
запрос JVM-метрик.

Доступные методы REST API:
/swagger-ui
env_default Получение метаданных и управление ими Доступные HTTP-запросы:
запрос JVM-метрик.

Доступные запросы SQL+:
CHECK_DATABASE,
CHECK_JWKS,
CHECK_MATERIALIZED_VIEW,
CHECK_TABLE,
CHECK_VERSIONS,
GET_CHANGES,
GET_ENTITY_DDL,
GET_ENTITY_STATISTICS,
RESET_STATISTICS,
SELECT FROM INFORMATION_SCHEMA,
SYNC,
USE.

Доступные методы REST API:
/swagger-ui,
методы по управлению метаданными,
методы по управлению статистикой,
метод для проверки версий компонентов
env_datareader Чтение данных Доступные запросы SQL+:
все запросы роли env_default,
CHECK_DATA,
CHECK_SUM,
CHECK_SUM_SNAPSHOT,
CREATE DOWNLOAD EXTERNAL TABLE,
DROP DOWNLOAD EXTERNAL TABLE,
INSERT INTO download_external_table,
SELECT
env_datawriter Изменение данных Доступные запросы SQL+:
все запросы роли env_default,
BEGIN DELTA,
COMMIT DELTA,
CREATE READABLE EXTERNAL TABLE,
CREATE UPLOAD EXTERNAL TABLE,
CREATE WRITABLE EXTERNAL TABLE,
DELETE,
DROP READABLE EXTERNAL TABLE,
DROP UPLOAD EXTERNAL TABLE,
DROP WRITABLE EXTERNAL TABLE,
ERASE DELTA,
ERASE_WRITE_OPERATION,
GET_DELTA_BY_DATETIME,
GET_DELTA_BY_NUM,
GET_DELTA_HOT,
GET_DELTA_OK,
GET_WRITE_OPERATIONS,
INSERT SELECT,
INSERT SELECT FROM external_table,
INSERT VALUES,
RESUME_WRITE_OPERATION,
ROLLBACK CRASHED_WRITE_OPERATIONS,
ROLLBACK DELTA,
UPSERT VALUES.

Доступные методы REST API:
методы по управлению дельтами
env_ddladmin Управление схемой данных Доступные запросы SQL+:
все запросы роли env_default,
ALLOW_CHANGES,
ALTER TABLE ADD COLUMN,
ALTER TABLE ADD RETENTION,
ALTER TABLE DROP COLUMN,
ALTER TABLE DROP RETENTION,
ALTER TABLE RENAME,
ALTER TABLE RENAME COLUMN,
ALTER VIEW,
CREATE DATABASE,
CREATE MATERIALIZED VIEW,
CREATE TABLE,
CREATE VIEW,
DENY_CHANGES,
DROP DATABASE,
DROP MATERIALIZED VIEW,
DROP TABLE,
DROP VIEW,
ERASE_CHANGE_OPERATION,
TRUNCATE ACTUAL,
TRUNCATE HISTORY
env_owner Полный доступ Доступны все запросы SQL+ и все методы REST API без ограничений