Files
fox/src/PaaS/PostgreSQL/user-capabilities.md
T
Левченко Людмила Алексеевна 8e1da810a6 Мелкие правки
2026-03-31 11:08:54 +03:00

11 KiB

Возможности пользователя

Данный раздел описывает права, которые предоставляются пользователю PostgreSQL при создании сервиса Cloud PostgreSQL, а также перечень административных операций, доступных ему для самостоятельного выполнения.

При развертывании сервиса автоматически создаётся пользователь базы данных с преднастроенными атрибутами и привилегиями. Эти права позволяют заказчику самостоятельно управлять своими базами данных, ролями и пользователями в рамках созданного экземпляра PostgreSQL.

Общая информация о пользователе

При инициализации сервиса автоматически создаётся пользователь:

client 

Данный пользователь является основной учётной записью для административной работы в рамках предоставленного экземпляра PostgreSQL.

Он предназначен для самостоятельного управления в пределах выданных привилегий:

  • базами данных;
  • ролями;
  • правами доступа.

Выданные права и ограничения

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

Атрибуты роли

Пользователь создаётся со следующими атрибутами:

  • CREATEDB — разрешено создание и удаление баз данных;
  • CREATEROLE — разрешено создание ролей и пользователей, а также управление их.

Атрибут SUPERUSER пользователю не предоставляется. Соответственно, доступ к системным операциям уровня кластера и настройкам сервера отсутствует.

Права на системную базу postgres:

К стандартной базе данных postgres пользователю предоставлено только право подключения — CONNECT

Иные привилегии (создание объектов, изменение схем и т.д.) на данную базу не выдаются.

Мониторинг и системные представления

Для выполнения базовых задач мониторинга пользователю дополнительно предоставлены:

  • членство в роли pg_monitor;
  • право SELECT на системное представление:
pg_catalog.pg_stat_replication

Доступ к системной информации предоставляется исключительно в режиме чтения. Изменение системных представлений и параметров сервера недоступно.

Изменение пароля

После первого подключения к базе данных пользователь client обязан выполнить изменения пароля.

Изменить пароля можно:

  • в открытом виде (с передачей нового значения пароля);
  • с указанием заранее сгенерированного хэша.

На сервере используется алгоритм шифрования паролей:

scram-sha-256

При использовании SCRAM применяется следующий формат хэша:

$<iterations>:<salt>$<storedkey>:<serverkey>
Операция Описание Команда SQL
Смена пароля в открытом виде Для смены пароля в открытом виде ALTER USER client WITH PASSWORD 'new_strong_password';
Смена пароля с указанием хэша Рекомендуется использовать сложный уникальный пароль, соответствующий требованиям информационной безопасности, и хранить его в защищённом хранилище ALTER USER client WITH ENCRYPTED PASSWORD '$4096:...';
Создание новой базы данных Для создания базы данных CREATE DATABASE app_db;
Создание базы данных с указанием владельца Пользователь, указанный как владелец, будет иметь полный контроль над базой данных, включая права на её удаление и изменение. По умолчанию владельцем создаваемой базы данных является пользователь, который её создает CREATE DATABASE app_db OWNER client;

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

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

Операция Описание Команда SQL
Создание роли без логина Для входа в базу данных (например, для организации прав доступа) CREATE ROLE app_role;
Создание пользователя с паролем Для создания пользователя с паролем. После выполнения этой команды новый пользователь app_user будет иметь возможность входа в базу данных, используя указанный пароль. CREATE USER app_user WITH PASSWORD 'app_password';
Назначение роли пользователю Для назначения роли пользователю. Данная команда позволяет управлять правами пользователя в рамках определённой роли. После выполнения этой команды пользователь app_user станет членом роли app_role, и будет наследовать все права, связанные с этой ролью. GRANT app_role TO app_user;

Управление правами доступа

После создания пользователей и ролей необходимо назначить им соответствующие права доступа.

Операция Описание Команда SQL
Передача владельца базы данных Для передачи прав владения базой данных другому пользователю. После выполнения этой команды база данных app_db будет принадлежать пользователю app_user, и он будет иметь полный контроль над ней. ALTER DATABASE app_db OWNER TO app_user;
Выдача прав на подключение к базе данных Для предоставления прав к подключению к базе данных. После выполнения этой команды пользователь может app_user подключаться к базе данных app_db. GRANT CONNECT ON DATABASE app_db TO app_user;
Предоставление прав на схему public Для предоставления прав на использование схемы public. После выполнения этой команды пользователь app_user может использовать объекты в схеме public, а также создавать новые объекты внутри неё. GRANT USAGE, CREATE ON SCHEMA public TO app_user;
Предоставление прав на существующие таблицы Для предоставления доступа пользователю к существующим таблицам в схеме public. После выполнения этой команды пользователь app_user может выполнять операции чтения, вставки, обновления и удаления данных в существующих таблицах схемы public. GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user;
Предоставление прав на будущие таблицы Если необходимо автоматически предоставить пользователю права на новые таблицы, создаваемые в схеме public. После выполнения этой команды все будущие таблицы, создаваемые в схеме public, будут автоматически иметь права для пользователя app_user на чтение, вставку, обновление и удаление данных. ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user;

Мониторинг репликации

Пользователь client имеет доступ к системным представлениям для мониторинга состояния репликации в кластере PostgreSQL.

Операция Описание Команда SQL
Просмотр состояния репликации Для просмотра текущего статуса репликации. Этот запрос возвращает информацию о всех репликах, подключённых к основному (primary) серверу. SELECT * FROM pg_stat_replication;

::: warning Ограничения доступа реплкации

Пользователь client имеет доступ к данным в представлении pg_stat_replication только в режиме read-only. Это означает, что он может просматривать состояние репликации, но не может изменять или вмешиваться в процесс репликации.

:::