Перейти к основному содержимому

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

Последнее изменение: 30 июля 2026

Данный раздел описывает права, которые предоставляются пользователю 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;

Требования к паролям​

Длина пароля (рекомендуемая):

  • для учётной записи пользователя - не менее 12 знаков;
  • для учётных записей администраторов, технических и служебных учётных записей - не менее 16 знаков.

Сложность пароля: рекомендуется использовать уникальный пароль, содержащий символы как минимум трёх из четырёх указанных ниже групп (при отсутствии технических ограничений):

  • буквы латинского алфавита в верхнем регистре (A-Z);
  • буквы латинского алфавита в нижнем регистре (a-z);
  • цифры (0-9);
  • специальные символы и знаки пунктуации (например, !@#$%^&*(),.?).

Периодичность смены: рекомендуемая периодичность смены пароля - не реже одного раза в год.

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

Пользователь 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;
Ограничения доступа реплкации

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