Привилегии, поддерживаемые Selena
Привилегии, предоставленные пользователю или роли, определяют, какие операции пользователь или роль может выполнять с определенными объектами. Привилегии можно использовать для реализации детального контроля доступа для обеспечения безопасности данных.
Эта тема описывает привилегии, предоставляемые Selena для различных объектов и их значения. Привилегии предоставляются и от зываются с помощью GRANT и REVOKE. Привилегии, которые можно предоставить для объекта, специфичны для типа объекта. Например, привилегии таблицы отличаются от привилегий базы данных.
ПРИМЕЧАНИЕ: Привилегии, описанные в этой теме, доступны только начиная с версии 1.5.0. Система привилегий и синтаксис в v1.5.2 не совместимы с предыдущими версиями. После обновления до v1.5.2 большинство ваших исходных привилегий сохраняются, за исключением тех, которые предназначены для специфических операций. Подробные различия см. в разделе Примечания по обновлению в конце этой темы.
Список привилегий
Этот раздел описывает привилегии, доступные для различных объектов.
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 до 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 для назначения ролей и привилегий.