Перейти к основному содержимому
Версия: 2.0.x

Привилегии, поддерживаемые Selena

Привилегии, предоставленные пользователю или роли, определяют, какие операции пользователь или роль может выполнять на определенных объектах. Привилегии можно использовать для реализации детального контроля доступа для защиты безопасности данных.

В этом разделе описываются привилегии, предоставляемые Selena для различных объектов, и их значения. Привилегии предоставляются и отзываются с помощью GRANT и REVOKE. Привилегии, которые могут быть предоставлены на объект, специфичны для типа объекта. Например, привилегии таблицы отличаются от привилегий базы данных.

important

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

Список привилегий

В этом разделе описываются привилегии, доступные для различных объектов.

SYSTEM

ПривилегияОписание
NODEУправление узлами, например, добавление, удаление или вывод узлов из эксплуатации. Для обеспечения безопасности cluster эта привилегия не может быть напрямую предоставлена пользователям или ролям. Роль cluster_admin обладает этой привилегией.
GRANTСоздание пользователя или роли, изменение пользователя или роли, предоставление привилегий пользователю или роли. Эта привилегия не может быть напрямую предоставлена пользователям или ролям. Роль user_admin обладает этой привилегией.
CREATE RESOURCE GROUPСоздание группы ресурсов.
CREATE RESOURCEСоздание ресурсов для заданий Spark Load или внешних таблиц.
CREATE EXTERNAL CATALOGСоздание внешнего каталога.
PLUGINУстановка или удаление плагина.
REPOSITORYСоздание, удаление или просмотр репозиториев.
BLACKLISTСоздание, удаление или отображение чёрных списков SQL и BE Blacklist.
FILEСоздание, удаление или просмотр файлов.
OPERATEУправление replica, элементами конфигурации, переменными и транзакциями.
CREATE GLOBAL FUNCTIONСоздание глобальной UDF.
CREATE STORAGE VOLUMEСоздание тома хранения для удалённой системы хранения.
SECURITYСоздание или управление интеграциями безопасности и провайдерами групп.

RESOURCE GROUP

ПривилегияОписание
ALTERДобавляет или удаляет классификаторы для группы ресурсов.
DROPУдаляет группу ресурсов.
ALLИмеет все вышеперечисленные привилегии на группу ресурсов.

RESOURCE

ПривилегияОписание
USAGEИспользует ресурс.
ALTERИзменяет ресурс.
DROPУдаляет ресурс.
ALLИмеет все вышеперечисленные привилегии на ресурс.

USER

ПривилегияОписание
IMPERSONATEПозволяет пользователю A выполнять операции от имени пользователя B.

GLOBAL FUNCTION (Глобальные UDF)

ПривилегияОписание
USAGEИспользует функцию в запросе.
DROPУдаляет функцию.
ALLИмеет все вышеперечисленные привилегии на функцию.

CATALOG

ОбъектПривилегияОписание
CATALOG (внутренний catalog)USAGEИспользует внутренний catalog (default_catalog).
CATALOG (внутренний catalog)CREATE DATABASEСоздает базы данных во внутреннем catalog.
CATALOG (внутренний catalog)ALLИмеет все вышеперечисленные привилегии на внутренний catalog.
CATALOG (внешний catalog)USAGEИспользует внешний catalog.
CATALOG (внешний catalog)DROPУдаляет внешний catalog.
CATALOG (внешний catalog)ALLИмеет все вышеперечисленные привилегии на внешний catalog.

Примечания: внутренний catalog Selena не может быть удален.

DATABASE

ПривилегияОписание
ALTERУстанавливает свойства для базы данных, переименовывает базу данных или устанавливает квоты для базы данных.
DROPУдаляет базу данных.
CREATE TABLEСоздает таблицы в базе данных.
CREATE VIEWСоздает представление.
CREATE FUNCTIONСоздает функцию.
CREATE MATERIALIZED VIEWСоздает материализованное представление.
ALLИмеет все вышеперечисленные привилегии на базу данных.

TABLE

ПривилегияОписание
ALTERИзменяет таблицу или обновляет метаданные во внешней таблице.
DROPУдаляет таблицу.
SELECTЗапрашивает данные в таблице.
INSERTВставляет данные в таблицу.
UPDATEОбновляет данные в таблице.
EXPORTЭкспортирует данные из таблицы Selena.
DELETEУдаляет данные из таблицы на основе указанного условия или удаляет все данные из таблицы.
ALLИмеет все вышеперечисленные привилегии на таблицу.

VIEW

ПривилегияОписание
SELECTЗапрашивает данные в представлении.
ALTERИзменяет определение представления.
DROPУдаляет логическое представление.
ALLИмеет все вышеперечисленные привилегии на представление.

MATERIALIZED VIEW

ПривилегияОписание
SELECTЗапрашивает материализованное представление для ускорения запросов.
ALTERИзменяет материализованное представление.
REFRESHОбновляет материализованное представление.
DROPУдаляет материализованное представление.
ALLИмеет все вышеперечисленные привилегии на материализованное представление.

FUNCTION (UDF уровня базы данных)

ПривилегияОписание
USAGEИспользует функцию.
DROPУдаляет функцию.
ALLИмеет все вышеперечисленные привилегии на функцию.

STORAGE VOLUME

ПривилегияОписание
ALTERИзменяет свойства учетных данных, комментарий или статус (включено) тома хранилища.
DROPУдаляет том хранилища.
USAGEОписывает том хранилища и устанавливает том хранилища в качестве тома хранилища по умолчанию.
ALLИмеет все вышеперечисленные привилегии на том хранилища.

Примечания к обновлению

Во время обновления с v2.x до v1.5.2 некоторые ваши операции могут быть невыполнимы из-за введения новой системы привилегий. В следующей таблице описаны изменения до и после обновления.

ОперацияВовлеченные командыДоПосле
Изменение таблицыALTER TABLE, CANCEL ALTER TABLEПользователи, имеющие привилегию LOAD_PRIV на таблицу или базу данных, к которой принадлежит таблица, могут выполнять операции ALTER TABLE и CANCEL ALTER TABLE.Вы должны иметь привилегию ALTER на таблицу, чтобы выполнять эти две операции.
Обновление внешней таблицыREFRESH EXTERNAL TABLEПользователи, имеющие привилегию LOAD_PRIV на внешнюю таблицу, могут обновлять внешнюю таблицу.Вы должны иметь привилегию ALTER на внешнюю таблицу, чтобы выполнить эту операцию.
Резервное копирование и восстановлениеBACKUP, RESTOREПользователи, имеющие привилегию LOAD_PRIV на базу данных, могут создавать резервную копию и восстанавливать базу данных или любую таблицу в базе данных.Администратор должен снова предоставить привилегии резервного копирования и восстановления пользователям после обновления.
Восстановление после удаленияRECOVERПользователи, имеющие привилегии ALTER_PRIV, CREATE_PRIV и DROP_PRIV на базу данных и таблицу, могут восстанавливать базу данных и таблицу.Вы должны иметь привилегию CREATE DATABASE на default_catalog, чтобы восстановить базу данных. Вы должны иметь привилегию CREATE TABLE на базу данных и привилегию DROP на таблицу.
Создание и изменение пользователейCREATE USER, ALTER USERПользователи, имеющие привилегию GRANT_PRIV на базу данных, могут создавать и изменять пользователей.Вы должны иметь роль user_admin, чтобы создавать и изменять пользователей.
Предоставление и отзыв привилегийGRANT, REVOKEПользователи, имеющие привилегию GRANT_PRIV на объект, могут предоставлять привилегии на объект другим пользователям или ролям.После обновления вы все еще можете предоставлять привилегии, которые у вас уже есть на этот объект, другим пользователям или ролям после обновления.
В новой системе привилегий:
  • Вы должны иметь роль user_admin, чтобы предоставлять привилегии другим пользователям или ролям.
  • Если ваше утверждение GRANT включает WITH GRANT OPTION, вы можете предоставлять привилегии, участвующие в утверждении, другим пользователям или ролям.

В v2.x Selena не полностью реализует управление доступом на основе ролей (RBAC). Когда вы назначаете роль пользователю, Selena напрямую предоставляет все привилегии роли пользователю, а не саму роль. Поэтому пользователь фактически не владеет ролью.

В v1.5.2 Selena обновляет свою систему привилегий. После обновления до v1.5.2 ваши исходные роли сохраняются, но по-прежнему нет владения между пользователями и ролями. Если вы хотите использовать новую систему RBAC, выполните операцию GRANT, чтобы назначить роли и привилегии.