Роли пользователя в СУБД 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 | Наблюдатель PostgreSQL | order-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 | Редактор PostgreSQL | order-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 | Администратор PostgreSQL | order-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 | Получение списка проектов |
В этой статье
Мы ответили на ваш вопрос?