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