Управление ролями и пользователями
Greenplum® управляет правами доступа к базе данных с помощью двух типов ролей:
- Пользователь — это роль, которая может авторизоваться в базе данных.
- Групповая роль — это роль, в состав которой входят другие роли.
Подробнее см. в разделе Пользователи и роли.
Пользователь-администратор создается вместе с кластером Managed Service for Greenplum® и автоматически получает роль администратора mdb_admin
. Подключитесь к базе данных от его имени, чтобы:
- Посмотреть список ролей.
- Создать роль.
- Настроить групповые роли.
- Изменить атрибуты роли.
- Настроить привилегии роли.
- Удалить роль.
Подробнее о командах взаимодействия с ролями см. в документации Greenplum®
Посмотреть список ролей
Выполните команду:
SELECT rolname FROM pg_roles;
Чтобы посмотреть список ролей с их привилегиями, выполните команду:
SELECT
rolname,
rolsuper,
rolcreatedb,
rolcreaterole,
rolinherit,
rolcanlogin,
rolconnlimit,
rolcreaterextgpfd
FROM pg_roles;
Результат:
rolname | rolsuper | rolcreatedb | rolcreaterole | rolinherit | rolcanlogin | rolconnlimit | rolcreaterextgpfd
----------------+----------+-------------+---------------+------------+-------------+--------------+-------------------
mdb_admin | f | f | f | t | f | -1 | f
gpadmin | t | t | t | t | t | -1 | t
monitor | t | f | f | t | t | -1 | f
user1 | f | t | t | t | t | -1 | t
Где:
- t — наличие привилегии.
- f — отсутствие привилегии.
Создать роль
Выполните команду:
CREATE ROLE <имя_роли> <список_атрибутов>;
Доступные атрибуты см. в разделе Атрибуты.
Настроить групповые роли
Чтобы добавить роль в состав групповой роли, выполните команду:
GRANT <имя_групповой_роли> TO <список_ролей_через_запятую>;
Имена ролей можно получить со списком ролей в кластере.
Атрибуты LOGIN
, SUPERUSER
, CREATEDB
, CREATEROLE
, CREATEEXTTABLE
, и RESOURCE QUEUE
не наследуются. Чтобы воспользоваться всеми атрибутами групповой роли, выполните от имени роли в составе команду:
SET ROLE <имя_групповой_роли>;
Чтобы удалить роль из состава групповой роли, выполните команду:
REVOKE <имя_групповой_роли> FROM <список_ролей_через_запятую>;
Изменить атрибуты роли
Выполните команду:
ALTER ROLE <имя_роли> <список_атрибутов>;
Доступные атрибуты см. в разделе Атрибуты.
Настроить привилегии роли
Чтобы выдать привилегии роли, выполните команду:
GRANT <список_привилегий_через_запятую> ON <имя_объекта> TO <имя_роли>;
Доступные привилегии см. в разделе Привилегии.
Чтобы отозвать привилегии у роли, выполните команду:
REVOKE <список_привилегий_через_запятую> ON <имя_объекта> FROM <имя_роли>;
Вместо перечисления всех привилегий объекта используйте ALL PRIVILEGES
.
Чтобы отозвать все привилегии всех объектов роли, выполните команду:
DROP OWNED BY <имя_роли>;
Удалить роль
Перед удалением роли удалите все объекты, которыми она владеет, или переназначьте их права собственности и отзовите все привилегии для других объектов.
Выполните команду:
DROP ROLE <имя_роли>;
Примеры
Создание роли
Создайте роль с тестовыми характеристиками:
- С именем
greenplum_user
. - С атрибутами
CREATEDB
иCREATEROLE
. - С возможностью авторизации в системе с защищенным паролем
password123
.
Выполните команду:
CREATE ROLE greenplum_user CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'password123';
Проверьте, что новая роль с заданными атрибутами появилась в списке:
SELECT
rolname,
rolsuper,
rolcreatedb,
rolcreaterole,
rolinherit,
rolcanlogin,
rolconnlimit,
rolcreaterextgpfd
FROM pg_roles;
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками VMware, Inc в США и/или других странах.