Роли пользователя в СУБД PostgreSQL и кластере PostgreSQL

PostgreSQL использует концепцию ролей для управления разрешениями на доступ к базе данных. В этой концепции пользователи и группы — это роли.

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

Существует специальная неявная роль PUBLIC, которая автоматически ассоциируется со всеми ролями в системе, но её нельзя обнаружить при просмотре списка ролей. Роль PUBLIC автоматически присваивается всем пользователям и ролям и предоставляет базовые привилегии, такие как право на подключение к базам данных и выполнение операций SELECT на новых таблицах. Администраторы могут настраивать эти доступы, используя команды REVOKE и GRANT, чтобы повысить безопасность путём ограничения стандартных прав. Изменения в привилегиях PUBLIC затрагивают всех пользователей системы.

Ключевые аспекты ролей в PostgreSQL

Аспект

Описание

Роли (Roles)Ролями могут быть как пользователи, так и группы. Они определяют, какие привилегии имеются у аккаунтов, взаимодействующих с базой данных.
Пользователи (Users)Это роли, которые могут входить в систему. Это индивидуальные аккаунты, используемые для аутентификации.
Группы (Groups)В PostgreSQL группы также представлены ролями, но без возможности входа в систему. Они используются для управления набором привилегий для группы пользователей.
Права доступа (Privileges)Роли используются для управления правами доступа к базам данных, таблицам, представлениям, функциям и другим объектам. Права могут включать чтение (SELECT), запись (INSERT, UPDATE, DELETE) и другие специфические операции.
Наследование ролей (Role Inheritance)

В PostgreSQL одна роль (дочерняя) наследует привилегии от другой роли (родительской). То есть дочерняя роль получает все или некоторые привилегии родительской роли.

Наследование позволяет роли использовать привилегии родительской роли без явного предоставления этих привилегий каждой дочерней роли. 

Суперпользователи (Superusers)Это специальные роли, имеющие полный доступ ко всем функциям и данным в PostgreSQL. Суперпользователи могут создавать и удалять роли, а также назначать привилегии.
Аутентификация ролей (Role Authentication)PostgreSQL поддерживает различные методы аутентификации ролей, включая парольную аутентификацию, идентификацию через операционную систему, SSL-сертификаты и другие.
Управление ролями (Role Management)PostgreSQL предоставляет различные команды SQL для управления ролями, такие как CREATE ROLE, ALTER ROLE и DROP ROLE.
Атрибуты ролей

Роль может иметь атрибуты, которые определяют её полномочия и взаимодействие с системой аутентификации клиентов.

Роли пользователя в кластере PostgreSQL на портале T1 Облако

По умолчанию на портале предусмотрено 3 роли для пользователей сервиса Managed Service for PostgreSQL:

  • Наблюдатель PostgreSQL;
  • Редактор PostgreSQL;
  • Администратор PostgreSQL.

Можно изменить разрешения для существующей роли или создать новую роль. Подробнее см. раздел Роли.

Кодовое название ролиРольРазрешенияДействия
postgresql-manager.viewerНаблюдатель PostgreSQLorder-service:orders:fetch-categoriesПолучение категорий заказов для проекта

postgresql-manager:backups:list

Получение списка резервных копий

postgresql-manager:calculator:get-order-cost

Получение стоимости заказа кластера

postgresql-manager:clusters:get-node-status

Получение статуса ноды кластера

postgresql-manager:clusters:get-status

Получение статуса кластера (включен/выключен)

postgresql-manager:commands:get-status

Получение статуса выполнения запросов к сервису

postgresql-manager:compute:list-availability-zones

Просмотр зон доступности, возможных для заказа кластера

postgresql-manager:compute:list-flavors

Просмотр конфигураций, доступных для заказа кластера

postgresql-manager:compute:list-regions

Просмотр регионов, доступных для заказа кластера

postgresql-manager:compute:list-volume-types

Просмотр дисков, доступных для заказа кластера

postgresql-manager:databases:get-permissions

Получение прав пользователей в БД

postgresql-manager:databases:list

Получение списка БД

postgresql-manager:order-service:get-order

Получение информации о заказе

postgresql-manager:order-service:list-order-actions-history

Просмотр истории действий с заказом кластера

postgresql-manager:order-service:list-orders

Получение списка заказов кластеров

postgresql-manager:services:get-status

Получение статуса сервиса (включен/выключен)

postgresql-manager:state-service:get-item

Получение информации о параметрах заказа: имени, описании, статусе заказа, статусе кластера, дате создания, количестве нод и т.д.

postgresql-manager:state-service:list-items

Получение списка параметров заказа

postgresql-manager:tarifficator:get-new-order-cost

Получение информации о стоимости заказа (в процессе заказа кластера)

postgresql-manager:users:list

Получение списка пользователей

postgresql-manager:vpc:list-subnets

Получение списка подсетей
product-catalog:products:categoriesПолучение списка продуктов (ресурсов)
resource-manager:folders:getПолучение списка папок
resource-manager:organizations:getПолучение списка организаций
resource-manager:projects:getПолучение списка проектов
postgresql-manager.editorРедактор PostgreSQLorder-service:orders:fetch-categoriesПолучение категорий заказов для проекта

postgresql-manager:backups:create

Создание резервной копии

postgresql-manager:backups:delete

Удаление резервной копии

postgresql-manager:backups:list

Получение списка резервных копий

postgresql-manager:calculator:get-order-cost

Получение стоимости заказа кластера

postgresql-manager:clusters:get-node-status

Получение статуса ноды кластера

postgresql-manager:clusters:get-status

Получение статуса кластера (включен/выключен)

postgresql-manager:commands:get-status

Получение статуса  выполнения запросов к сервису

postgresql-manager:compute:list-availability-zones

Просмотр зон доступности, возможных для заказа кластера

postgresql-manager:compute:list-flavors

Просмотр конфигураций, доступных для заказа кластера

postgresql-manager:compute:list-regions

Просмотр регионов, доступных для заказа кластера

postgresql-manager:compute:list-volume-types

Просмотр дисков, доступных для заказа кластера

postgresql-manager:databases:create

Создание БД

postgresql-manager:databases:delete

Удаление БД

postgresql-manager:databases:execute-query

Выполнение SQL-запросов

postgresql-manager:databases:get-permissions

Получение прав пользователей в БД

postgresql-manager:databases:list

Получение списка БД

postgresql-manager:databases:set-permissions

Редактирование списка прав пользователей в БД

postgresql-manager:databases:update

Редактирование БД

postgresql-manager:order-service:get-order

Получение информации о заказе

postgresql-manager:order-service:list-order-actions-history

Просмотр истории действий с заказом кластера

postgresql-manager:order-service:list-orders

Получение списка заказов кластеров

postgresql-manager:services:get-status

Получение статуса сервиса (включен/выключен)

postgresql-manager:state-service:get-item

Получение информации о параметрах заказа: имени, описании, статусе заказа, статусе кластера, дате создания, количестве нод и т.д.

postgresql-manager:state-service:list-items

Получение списка параметров заказа

postgresql-manager:tarifficator:get-new-order-cost

Получение информации о стоимости заказа (в процессе заказа кластера)

postgresql-manager:users:create

Создание пользователя

postgresql-manager:users:delete

Удаление пользователя

postgresql-manager:users:list

Получение списка пользователей

postgresql-manager:users:update

Редактирование пользователя

postgresql-manager:vpc:list-subnetsПолучение списка подсетей
product-catalog:products:categoriesПолучение списка продуктов (ресурсов)
resource-manager:folders:getПолучение списка папок
resource-manager:organizations:getПолучение списка организаций
resource-manager:projects:getПолучение списка проектов
postgresql-manager.adminАдминистратор PostgreSQLorder-service:orders:fetch-categoriesПолучение категорий заказов для проекта

postgresql-manager:backups:create

Создание резервной копии

postgresql-manager:backups:delete

Удаление резервной копии

postgresql-manager:backups:list

Получение списка резервных копий

postgresql-manager:calculator:get-order-cost

Получение стоимости заказа кластера

postgresql-manager:clusters:get-node-status

Получение статуса ноды в кластере

postgresql-manager:clusters:get-status

Получение статуса кластера (включен/выключен)

postgresql-manager:clusters:perform-failover

Автоматическое назначение ноды лидером в аварийной ситуации

postgresql-manager:clusters:perform-switchover

Назначение ноды лидером

postgresql-manager:clusters:reinitialize-replica

Пересоздание СУБД на ноде (данные удаляются и загружаются снова через репликацию)

postgresql-manager:clusters:reload-node

Перезагрузка конфигурации СУБД

postgresql-manager:clusters:restart-node

Перезапуск СУБД на ноде

postgresql-manager:clusters:switch-master

Не используется

postgresql-manager:commands:get-status

Получение статуса выполнения запросов к сервису

postgresql-manager:compute:list-availability-zones

Просмотр зон доступности, возможных для заказа кластера

postgresql-manager:compute:list-flavors

Просмотр конфигураций, доступных для заказа кластера

postgresql-manager:compute:list-regions

Просмотр регионов, доступных для заказа кластера

postgresql-manager:compute:list-volume-types

Просмотр дисков, доступных для заказа кластера

postgresql-manager:databases:create

Создание БД

postgresql-manager:databases:delete

Удаление БД

postgresql-manager:databases:execute-query

Выполнение SQL-запросов

postgresql-manager:databases:get-permissions

Получение прав пользователей в БД

postgresql-manager:databases:list

Получение списка БД

postgresql-manager:databases:set-permissions

Редактирование списка прав пользователей в БД

postgresql-manager:databases:update

Редактирование БД

postgresql-manager:order-service:create-order

Создание заказа кластера

postgresql-manager:order-service:get-order

Получение информации о заказе

postgresql-manager:order-service:list-order-actions-history

Просмотр истории действий с заказом кластера

postgresql-manager:order-service:list-orders

Получение списка заказов кластеров

postgresql-manager:order-service:perform-action-with-product

Выполнение действий с кластером

postgresql-manager:orders:create-order

Не используется

postgresql-manager:services:get-status

Получение статуса сервиса (включен/выключен)

postgresql-manager:services:restart

Перезапуск сервиса

postgresql-manager:state-service:get-item

Получение информации о параметрах заказа: имени, описании, статусе заказа, статусе кластера, дате создания, количестве нод и т.д.

postgresql-manager:state-service:list-items

Получение списка параметров заказа

postgresql-manager:tarifficator:get-new-order-cost

Получение информации о стоимости заказа (в процессе заказа кластера)

postgresql-manager:users:create

Создание пользователя

postgresql-manager:users:delete

Удаление пользователя

postgresql-manager:users:list

Получение списка пользователей

postgresql-manager:users:update

Редактирование пользователя

postgresql-manager:vpc:list-subnets

Получение списка подсетей
product-catalog:products:categoriesПолучение списка продуктов (ресурсов)
resource-manager:folders:getПолучение списка папок
resource-manager:organizations:getПолучение списка организаций
resource-manager:projects:getПолучение списка проектов