Перейти к основному содержимому

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

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

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

ПРИМЕЧАНИЕ: Привилегии, описанные в этой теме, доступны только начиная с версии 1.5.0. Система привилегий и синтаксис в v3.0 не совместимы с предыдущими версиями. После обновления до v3.0 большинство ваших исходных привилегий сохраняются, за исключением тех, которые предназначены для специфических операций. Подробные различия см. в разделе Примечания по обновлению в конце этой темы.

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

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

SYSTEM

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

RESOURCE GROUP

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

RESOURCE

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

USER

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

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

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

CATALOG

ОбъектПривилегияОписание
CATALOG (internal catalog)USAGEИспользует внутренний catalog (default_catalog).
CATALOG (internal catalog)CREATE DATABASEСоздает базы данных во внутреннем catalog.
CATALOG (internal catalog)ALLИмеет все вышеперечисленные привилегии для внутреннего catalog.
CATALOG (external catalog)USAGEИспользует external catalog.
CATALOG (external catalog)DROPУдаляет external catalog.
CATALOG (external catalog)ALLИмеет все вышеперечисленные привилегии для external 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 до v3.0 некоторые из ваших операций могут быть недоступны из-за введения новой системы привилегий. Следующая таблица описывает изменения до и после обновления.

ОперацияЗадействованные командыДоПосле
Изменение таблицы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 напрямую предоставляет все привилегии роли пользователю, а не саму роль. Поэтому пользователь фактически не владеет ролью.

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