Задать вопрос
Все статьи / VDS / Установка и настройка ПО / Как создать пользователя PostgreSQL: инструкция
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

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

PostgreSQL – мощная система управления базами данных с открытым исходным кодом, которая используется во всем мире для управления данными. Создание пользователей в PostgreSQL – это одна из основных задач администратора базы данных. В этой статье мы подробно рассмотрим процесс создания пользователей в PostgreSQL.

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

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

Способ 1. С помощью CREATE USER 

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

Создание суперпользователя

Чтобы создать суперпользователя с паролем и правами администратора в PostgreSQL, выполните следующие шаги:

  1. Сначала откройте командную строку через утилиту psql или используя команду:
psql -U <имя-пользователя> 

  1. Затем введите следующую команду:
CREATE USER имя WITH PASSWORD 'пароль' SUPERUSER;

Где «имя» и «'пароль'» – соответствующие значения.

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

Создание обычного пользователя

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

CREATE USER имя WITH PASSWORD ‘пароль’;

Где «имя» и «'пароль'» – соответствующие значения.

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

CREATE USER имя WITH PASSWORD 'пароль' CONNECTION LIMIT 10;

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

Способ 2. Через pgAdmin

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

  1. Откройте pgAdmin и подключитесь к серверу PostgreSQL.
  2. В левой панели навигации выберите базу данных, в которой вы хотите создать пользователя.
  3. Щёлкните правой кнопкой мыши на «Login/Group Roles». 
  4. Выберите «Create», а затем – «Login/Group Role».
  5. В появившемся окне заполните следующую информацию:
  • В разделе General в поле Name введите имя пользователя.
  • В разделе Definition в поле Password введите пароль новой учётной записи.

Здесь же можно настроить дополнительные параметр: CONNECTION LIMIT и дату истечения прав учётной записи. Чтобы установить неограниченное количество подключений, задайте значение CONNECTION LIMIT на -1. Если для пользователя задан вход без пароля, то значение в поле Account expires применяться не будет. 

  1. В разделе Privileges выберите необходимые привилегии. Например, включите опцию «Can login?», нажав на переключатель справа, чтобы разрешить пользователю вход в систему. Здесь же можно назначить пользователю права суперпользователя с помощью опции «Superuser?».
  2. В разделе Membership вы можете назначить пользователю специфические роли. 
  3. Проверьте сгенерированный SQL-код на крайней правой вкладке и затем нажмите кнопку Save, чтобы создать пользователя с выбранными параметрами.

Готово! Теперь пользователь создан. Вы можете увидеть его в списке «Login/Group Roles».

Различие в командах CREATE USER и CREATE ROLE

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

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

CREATE ROLE user;

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

Таким образом, команда CREATE USER – это, по сути, команда CREATE ROLE с опцией LOGIN. Например, команды «CREATE USER user» и «CREATE ROLE user WITH LOGIN» равнозначны.

Добавление и удаление прав с помощью групп 

В Postgres роли могут наследовать привилегии от других ролей. А поскольку роль можно назначить как одному пользователю, так и группе, пользователи могут наследовать привилегии от групп или других пользователей. 

В качестве примера давайте создадим две группы: одну с правами только на чтение данных, а другую – с правами на чтение и запись. Затем мы поочерёдно назначим эти группы пользователю и проверим результаты.

Создание групп

  1. Создайте группы, прописав:
CREATE ROLE "read_only_role";
CREATE ROLE "read_write_role";

Новые группы созданы, но мы пока не назначили им никаких привилегий. В нашей базе данных есть таблица swebtbl, на которой мы будем проверять назначение привилегий. 

  1. Группе read_only_role дайте права на чтение этой таблицы, а группе read_write_role – права на чтение и запись:
GRANT SELECT ON TABLE swebtbl TO read_only_role;
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE swebtbl TO read_write_role;

Назначение привилегий пользователю

Группы созданы, но пользователь пока не унаследовал их привилегии. Сначала нужно убедиться, что у пользователя нет прав на чтение данных из таблицы. 

  1. Войдите в базу данных как пользователь sweb_user и выполните команду:
SELECT * FROM swebtbl;

На экране появится ошибка

ERROR: permission denied for table swebtbl

  1. Присвойте пользователю роль на чтение:
GRANT read_only_role TO sweb_user;

Итак, теперь у пользователя есть права на чтение данных из таблицы, но нет прав на вставку данных (а также изменение и удаление).

  1. Заберите у пользователя группу на чтение и присвоим группу с правами на чтение и запись:
REVOKE read_only_role FROM sweb_user;
GRANT read_write_role TO sweb_user;
 

Готово! У пользователя появились права на запись в таблицу.

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

После создания пользователя можно использовать команду ALTER USER, чтобы изменить его разрешения. 

Формат команды ALTER USER в PostgreSQL включает имя пользователя, за которым следуют различные параметры. В PostgreSQL допустимы следующие изменения:

ALTER USER role_specification WITH ОПЦИЯ1 ОПЦИЯ2 ОПЦИЯ3;

  1. Если вы допустили ошибку при назначении разрешений и хотите их отозвать, можно использовать команду ALTER USER с необходимыми параметрами.

Например, чтобы удалить статус SUPERUSER у пользователя swebusr, выполните следующую команду:

ALTER USER swebusr WITH NOSUPERUSER;

  1. Чтобы снова предоставить пользователю swebusr права суперпользователя, используйте следующую команду:
ALTER USER swebusr WITH SUPERUSER;

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

Вы можете удалить пользователя из PostgreSQL, если уверены, что он больше не нужен. 

Важно! Удаление пользователя не затронет саму базу данных, однако могут возникнуть проблемы, если этот пользователь – владелец каких-либо объектов в базе данных.

Синтаксис: 

DROP USER имя_пользователя

  1. Убедитесь, что он не владеет какими-либо объектами в базе данных. В противном случае, вы получите сообщение об ошибке:
ERROR:  role "имя_пользователя" cannot be dropped because some objects depend on it

  1. Если пользователь действительно владелец объектов, вам нужно сначала сменить его. Например, чтобы сменить владельца таблицы, пропишите:
ALTER TABLE название_таблицы OWNER TO новый_владелец;

Чтобы сменить владельца базы данных, выполните:

ALTER DATABASE название_базы_данных OWNER TO новый_владелец;

  1. Теперь можно удалить пользователя:
DROP USER имя_пользователя;

Заключение

В этой статье мы рассмотрели пошаговый процесс создания пользователей, назначения им привилегий, изменения их разрешений и удаления из базы данных.

Теперь, следуя нашим инструкциям, вы сможете:

  • создавать новых пользователей с помощью команд CREATE USER и CREATE ROLE;
  • назначать и изменять привилегии пользователей с помощью команд GRANT и ALTER USER;
  • управлять наследованием привилегий через группы ролей;
  • удалять пользователей.

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

Предыдущая статья
Как подключить Node.js к базе данных MongoDB
Следующая статья
Как удалить базу данных PostgreSQL