yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareML SpaceВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Облако для мобильных и веб‑приложенийАналитика данных в облакеEvolution Bare MetalEvolution SSH KeysEvolution ImageСайт в облакеEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskХранение данных в облакеEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkАналитика данных в облакеEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSEvolution TagsEvolution Task HistoryCloud MonitoringCloud LoggingАренда GPUAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLРазработка и тестирование в облакеAdvanced Image Management ServiceAdvanced Auto ScalingDirect ConnectCDNCross-platform connectionAdvanced 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 ServerCloud AdvisorAdvanced 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: сервер Bare MetalИнфраструктура для 1С в облакеУдаленные рабочие столыМиграция IT‑инфраструктуры в облако3D-моделирование и рендеринг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

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