Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

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

Роман Андреев
Роман Андреев
Технический писатель
11 октября 2023 г.
7530
4 минуты чтения
Средний рейтинг статьи: 5

Для выполнения операций с базами данных в PostgreSQL создаются пользователи с различными правами доступа. В статье расскажем о том, как создать пользователя в PostgreSQL разными способами. Чтобы выполнить приведенные ниже рекомендации, сначала установите эту СУБД на сервер. Порядок установки на Ubuntu (Linux) и Windows подробно описывается в этой статье.

Для создания пользователя PostgreSQL можно использовать разные методы: например, ввести команду CREATE USER (или CREATE ROLE) в командной строке или выполнить SQL-запрос через интерфейс администрирования, такой как pgAdmin. Рассмотрим эти способы более подробно.

Создаем пользователей через CREATE USER

Для создания пользователя superuser с паролем и правами администратора в PostgreSQL сначала открываем командную строку, например, через утилиту psql или командой psql -U <имя_пользователя>. Далее вводим следующую команду в командной строке, заменив name и pass на желаемые значения:

CREATE USER name WITH PASSWORD 'pass' SUPERUSER;

После выполнения этой команды будет создан пользователь с правами администратора, что даст ему полный контроль над базой данных (БД). Также заметим, что для выполнения этой команды вам потребуется роль администратора с привилегиями доступа к созданию пользователей.

Для создания обычного пользователя вводим следующую команду, также заменив name и pass на желаемые значения:

CREATE USER name WITH PASSWORD 'pass';

Обратите внимание, что мы можем также добавить дополнительные параметры при создании пользователя, например, ограничения на подключение или права доступа к БД. Делается это так:

CREATE USER name WITH PASSWORD 'pass' CONNECTION LIMIT 5;

Опция CONNECTION LIMIT указывает максимальное количество одновременных подключений, которые может установить этот пользователь. В данном случае, пользователь будет ограничен до 5 одновременных подключений к базе данных.

Создаем пользователя PostgreSQL через pgAdmin

Если вы предпочитаете использовать интерфейс администрирования, такой как pgAdmin, то создание новых пользователей здесь осуществляется следующим образом:

  1. Откройте pgAdmin, подключитесь к серверу PostgreSQL.
  2. В левой панели навигации выберите БД, в которой вы хотите создать пользователя.
  3. Щелкните правой кнопкой на «Login/Group Roles» и выберите «Create» — «Login/Group Role».
  4. В появившемся окне заполните следующую информацию:
    • В поле Name на вкладке General введите имя пользователя.
    • В поле Password на вкладке Definition введите пароль новой учетной записи. Также на этой вкладке можно настроить дополнительные параметры, такие как ограничение количества одновременных подключений (CONNECTION LIMIT — см. пример выше) и дату и время истечения прав учетной записи. Однако если для пользователя задан вход без пароля, то значение, указанное в Account expires, применяться не будет. Если же вы хотите установить неограниченное количество одновременных подключений, установите значение CONNECTION LIMIT на -1.
    • В разделе Privileges выберите необходимые привилегии. Например, можно установить опцию Can login? в активную позицию (нажав на переключатель справа), чтобы разрешить пользователю вход в систему. Там же можно выдать учетной записи права суперпользователя (опция Superuser?).
    • На вкладке Membership можно задавать пользователям специфические роли, которые предлагаются системой. Например, для отслеживания и диагностики БД предусмотрена роль pg monitor.
  1. Проверьте созданный код SQL на крайней правой вкладке и затем нажмите кнопку «Save», чтобы создать пользователя с выбранными параметрами.
  2. Теперь пользователь будет создан и отображен в списке «Login/Group Roles» в pgAdmin.

CREATE USER vs CREATE ROLE

Начнем с того, что роли в современных версиях СУБД Postgres представляют как отдельных пользователей (с правами входа в систему или без них), так и целые группы. И для создания ролей в БД используются команды CREATE ROLE и CREATE USER. Они выполняют одну и ту же функцию, но существует небольшая разница в синтаксисе.

Команда CREATE ROLE часто (но не только) используется для создания роли без возможности входа в систему. Это означает, что созданная роль не сможет подключаться к серверу PostgreSQL и выполнять операции в базе данных (добавлять, изменять и удалять данные). Это может быть полезным, если вы хотите создать пользователя PostgreSQL Read Only (с правами только для чтения), пример:

CREATE ROLE readonly_user;

Команда CREATE USER (примеры ее использования см. выше), с другой стороны, нередко используется для создания роли с возможностью входа в систему. Это означает, что созданный пользователь сможет подключаться к серверу PostgreSQL и выполнять различные операции в базе данных.

Таким образом, команда CREATE USER фактически синонимична команде CREATE ROLE с опцией LOGIN. То есть команды CREATE USER readonly_user и CREATE ROLE readonly_user WITH LOGIN равнозначны.

 

А на этом всё: теперь вы знаете, как создавать пользователей различными способами через консоль и графический интерфейс и наделять их различными правами. Успешной работы!

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону