yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяОблако для мобильных и веб‑приложенийСайт в облакеАналитика данных в облакеХранение данных в облакеАналитика данных в облакеИнфраструктура для 1С в облакеМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингРазработка и тестирование в облакеEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Evolution Bare MetalEvolution SSH KeysEvolution ImageEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksEvolution TagsEvolution Task HistoryCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSCloud MonitoringCloud LoggingАренда GPUDirect ConnectCDNCloud AdvisorCross-platform connectionAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLAdvanced Image Management ServiceAdvanced Auto ScalingAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Связаться с нами

Как работать с пользователями в PostgreSQL: создать, добавить и удалить

PostgreSQL — ведущее объектно-реляционное решение для управления базами данных (СУБД). Оно подходит для использования в корпоративных и высоконагруженных системах. Чтобы с его помощью поддерживать стабильность и безопасность инфраструктуры базы данных, нужно грамотно управлять пользователями. Из статьи вы узнаете, как это делать с помощью простых команд.

Инструкции
Иллюстрация для статьи на тему «Как работать с пользователями в PostgreSQL: создать, добавить и удалить»
Продукты из этой статьи:
Иконка-Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®

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

В PostgreSQL управление пользователями осуществляется с помощью ролей (Roles). Используется команда CREATE USER, которая является сокращенной формой команды CREATE ROLE с преднастроенными правами. 

Использование команды CREATE USER

Команда CREATE USER позволяет добавить нового пользователя базы данных и задать ему релевантные права. Выполняйте команду в терминале через psql или в любом SQL-клиенте.

Как работать:

  1. Подключитесь к PostgreSQL:

Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим

2. Создайте пользователя: 

3. Назначьте права (например, разрешите создавать базы): 

4. При необходимости добавьте роль SUPERUSER:

SUPERUSER может обходить все проверки доступа. Используйте только для администраторов. Для обычных пользователей используйте отдельные GRANT для нужных объектов.

5. Назначьте доступ к базе: 

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

Создание пользователя через графический интерфейс (pgAdmin)

Можно упростить создание ролей для управления PostgreSQL. Как действовать:

  1. Запустите pgAdmin и подключитесь к вашему PostgreSQL-серверу.

  2. Перейдите в раздел ролей, в дереве объектов разверните Servers → Login/Group Roles → Create → Login/Group Role.

  3. Нажмите на Login/Group Roles и выберите Create → Login/Group Role.

  4. В строке General укажите Role Name (имя роли).

  5. В Definition задайте пароль для пользователя. 

  6. В Privileges установите необходимые права. 

  7. В Role Membership добавьте пользователя в нужные группы.

  8. Нажмите Save и сохраните роль. 

Как создать пользователя с помощью pgAdmin Создание пользователя с помощью pgAdmin

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

Для управления доступом в PostgreSQL используются команды GRANT и REVOKE (отзыв прав). С их помощью можно предоставлять права ролям в отношении конкретных объектов базы данных.

Назначение прав пользователям

Права назначаются на различных уровнях — на уровне кластера/базы данных, таблиц, схем и объектов. 

Основные права на уровне базы данных:

Основные права на уровне базы данных

Основные права на уровне таблиц:

Основные права на уровне базы данных

На схеме — процесс назначения прав. 

Как назначить права пользователюНазначение прав пользователю

Использование групп и ролей

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

С помощью ролей удобно объединять пользователей по задачам. Например, можно добавить сотрудника в команду разработки — new_dev и сделать членом групповой роли — dev_team. Тогда сотрудник автоматически наследует все необходимые права.

Наследование прав в группеНаследование прав в группе

Создайте роль-группу с помощью команды:

Назначьте привилегии группе:

Включите пользователя в роль:

Изменение пользователей

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

Смена пароля

Пароль можно поменять с помощью команды: ALTER USER username WITH PASSWORD 'new_password'. Задавая комбинацию, учитывайте следующие моменты: 

  • используйте длинные пароли — от 12 символов для корпоративных систем (некоторые стандарты требуют 15+ символов);

  • комбинируйте буквы в разных регистрах, цифры и символы;

  • откажитесь от банальных паролей вроде даты рождения, имен и фамилий, admin и т.д;

  • не используйте один и тот же пароль для разных пользователей;

  • меняйте пароли хотя бы раз в 3 месяца, а лучше — чаще. 

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

Дополнительные привилегии для пользователей

При необходимости можно выдать пользователю новые права или изменить существующие с помощью команды ALTER USER

Дополнительные привилегии для пользователей

Доступ к таблицам или базе данных можно дать через GRANT:

Как выглядит выдача доступа к базе данныхАлгоритм выдачи доступа к базе данных

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

Удаление пользователя — необратимый процесс. Он требует осторожности, поскольку пользователь может владеть объектами базы данных. Рассказываем, как удалять без негативных последствий. 

Удаление пользователя через DROP USER

REASSIGN OWNED BY и DROP OWNED BY работают только в текущей базе данных. Если пользователь владеет объектами в других БД, выполните эти команды в каждой базе данных.

Проверьте, какими объектами владеет пользователь:

Передайте владение другому пользователю или удалите объекты. Для передачи владения воспользуйтесь командой:

Проверьте роли и членство в группах:

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

Временное отключение пользователя без удаления

Иногда пользователя лучше не удалять, а просто отключить. Например, если сотрудник временно не работает или нужно сохранить историю. 

Для надежной блокировки используйте: 

  • ALTER USER username NOLOGIN; (требует явного LOGIN для разблокировки);

  • REVOKE CONNECT ON DATABASE mydb FROM username; (только для конкретной БД).

При этом, если в pg_hba.conf используется метод "trust", пользователь может подключиться даже с NOLOGIN.

Практические примеры

Чтобы было понятнее, как использовать команды, приведем примеры распространенных действий с ролями. 

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

Давайте создадим пользователя analytics_reader, который имеет доступ в систему, но не может создавать базы данных:

Теперь удалим пользователя temp_tester, предварительно проверив, не владеет ли он критическими объектами:

Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®
Управляйте базами данных PostgreSQL®: контролируйте основные метрики кластера, настраивайте резервное копирование и восстановление данных и за пару кликов увеличивайте vCPU, RAM и дисковое пространство.
Узнать больше

Работа с конфигурациями через pg_hba.conf

Файл pg_hba.conf — это основной файл конфигурации безопасности в PostgreSQL. Он определяет, кто может подключаться к серверу, к какой базе данных, с какого хоста (IP), какой метод аутентификации будет использован.

Работа с конфигурациями через pg_hba.conf

Например, нам нужно разрешить пользователю analytics_reader подключаться к базе data_warehouse с любого хоста в локальной подсети 192.168.1.0/24, используя пароль, зашифрованный по методу scram-sha-256. Делаем следующие записи в файле:

Также обновите postgresql.conf:

После изменения pg_hba.conf необходимо применить конфигурацию одним из способов:

- Выполнить: 

- Перезагрузить сервер:

- Отправить сигнал SIGHUP: 

Заключение

Грамотное управление пользователями в PostgreSQL — фундамент безопасности и стабильности вашей IT-инфраструктуры. Применяйте команды CREATE USER, GRANT и REVOKE, придерживайтесь принципа минимальных привилегий, устанавливайте сложные пароли и регулярно пересматривайте права доступа.​

Для упрощения администрирования рекомендуем использовать Evolution Managed PostgreSQL от Cloud.ru. Сервис берет на себя рутинные задачи: автоматическое резервное копирование, мониторинг производительности, обновления безопасности и масштабирование ресурсов, что позволяет сосредоточиться на разработке и бизнес-логике, не беспокоясь об инфраструктуре базы данных.

Продукты из этой статьи:
Иконка-Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®
28 ноября 2025

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