Пользователи и роли в Yandex MPP Analytics for PostgreSQL
Greenplum® управляет правами доступа к базе данных с помощью ролей. Роли могут владеть объектами базы данных (например, таблицами) и иметь атрибуты и привилегии. От имени одной роли можно назначать привилегии другим ролям.
Пользователь в Greenplum® — это роль, которая может авторизоваться в базе данных. Для этого ей предоставляется атрибут LOGIN.
Наибольшими привилегиями среди всех пользователей обладает пользователь-администратор с ролью mdb_admin.
Атрибуты
У роли есть атрибуты, определяющие, какие задачи она может выполнять в базе данных.
| Атрибуты | Описание |
|---|---|
SUPERUSER или NOSUPERUSER |
Является ли роль суперпользователем. В Yandex MPP Analytics for PostgreSQL атрибут SUPERUSER назначен служебным ролям gpadmin и monitor и недоступен пользователям сервиса. |
CREATEDB или NOCREATEDB |
Разрешение или запрет на создание базы данных. По умолчанию — NOCREATEDB. |
CREATEROLE или NOCREATEROLE |
Разрешение или запрет на создание других ролей и управление ими. По умолчанию — NOCREATEROLE. |
INHERIT или NOINHERIT |
Наследует ли роль привилегии ролей, в составе которых она находится. По умолчанию — INHERIT. |
LOGIN или NOLOGIN |
Может ли роль авторизоваться в системе, т. е. является ли роль пользователем. По умолчанию — NOLOGIN. |
CONNECTION LIMIT <значение> |
Количество одновременных подключений для роли с атрибутом LOGIN. Значение по умолчанию — -1 (количество не ограничено). |
CREATEEXTTABLE или NOCREATEEXTTABLE |
Разрешение или запрет на создание внешних таблиц. По умолчанию — NOCREATEEXTTABLE. |
PASSWORD '<пароль>' |
Задание пароля для роли. Если аутентификация для роли не требуется, этот атрибут можно не указывать. |
ENCRYPTED или UNENCRYPTED |
Сохранение пароля в виде хеш-строки или в открытом текстовом виде. По умолчанию — ENCRYPTED. Подробнее о защите паролей для входа см. в документации Greenplum® |
Групповые роли
Одни роли могут входить в состав других ролей и наследовать их привилегии. При изменении привилегий родительской роли меняются и привилегии всех ролей, входящих в ее состав. Подробнее о групповых ролях см. в документации Greenplum®
Привилегии
Привилегии определяют доступные для роли действия с объектами базы данных.
Не используйте роль mdb_admin для выполнения повседневных задач, т. к. ошибочная команда, отправленная от ее имени, может привести к неработоспособности кластера. Для таких задач создайте отдельные роли с минимально необходимым набором привилегий:
|
Тип объекта |
Привилегии |
|
Таблицы, внешние таблицы, представления |
|
|
Столбцы |
|
|
Последовательности |
|
|
Базы данных |
|
|
Домены |
|
|
Внешние оболочки данных |
|
|
Внешние серверы |
|
|
Функции |
|
|
Процедурные языки |
|
|
Схемы |
|
|
Табличные пространства |
|
|
Типы |
|
|
Протоколы |
|
Подробнее о привилегиях и управлении ими см. в документации Greenplum®
Роль mdb_admin вместо суперпользователя
В кластере Greenplum® не предоставляются права суперпользователя. Вместо него для работы с базами данных используйте пользователя-администратора с ролью mdb_admin. Такой пользователь создается вместе с кластером и позволяет выполнять следующие операции:
-
Управлять клиентскими процессами и сессиями пользователей, так как пользователь с ролью
mdb_adminможет обращаться к объектамmdb_toolkit. -
Обращаться к представлению pg_stat_activity
и получать информацию из него. -
Управлять объектами БД других пользователей, например таблицами. Пользователь с ролью
mdb_adminявляется владельцем объектов всех пользователей. -
Использовать зарезервированный для
mdb_adminслот для подключения.Если установлено слишком много подключений к БД, при еще одном подключении может возникнуть ошибка. Пользователь с ролью
mdb_adminэтого избегает, так как для него зарезервирован слот для подключения. -
Создавать БД.
-
- Создавать внешние источники данных.
- Создавать внешние таблицы.
- Обращаться к учетным данным пользователей. Эти данные передаются по PXF в открытом виде.
-
Расширять кластер: добавлять хосты-сегменты в него и перераспределять данные между ними с помощью утилиты
gp_expand. -
Подключаться к БД
gpperfmonи диагностировать производительность кластера.
Имя пользователя-администратора и его пароль задаются при создании кластера.
Если вы хотите предоставить привилегии пользователя-администратора другому пользователю, назначьте ему роль mdb_admin:
GRANT mdb_admin TO <имя_пользователя>;
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками Broadcom Inc в США и/или других странах.