===== Использование ролей для подключения в PostgreSQL ===== После установки PostgreSQL использует метод аутентификации ident. Данный способ аутентификации использует учетные записи операционной системы в качестве разрешённого имени пользователя базы данных. Это означает, что если в операционной системе существует пользователь с таким же именем, что и роль в Postgres, то он может выполнять вход в качестве данной роли. По умолчанию в ходе установки Postgres создает учетную запись c названием **postgres**, которая связана с аналогичной ролью. Поэтому для использования Postgres нам необходимо войти в эту учетную запись. Сделать это мы можем несколькими способами. ==== Переключение на учетную запись postgres ==== Для переключения учетной записи мы можем использовать следующую команду: $ sudo -i -u postgres После этого мы можем использовать командную строку PostgresSQL для управления нашими базами данных: $ psql Для выхода из командной строки PostresSQL используем команду: postgres=# \q С помощью этой команды мы вернемся к учетной записи **postgres**. ==== Используем командную строку postgres без переключения учетной записи ==== Чтобы начать использовать командную строку postgres без переключения учетной записи мы можем использовать следующую команду: $ sudo -u postgres psql Данный способ позволит использовать командную строку postgres без необходимости ввода промежуточной команды. ===== Создание новой роли в PostgreSQL ===== На текущий момент у нас существует только роль **postgres**. Для создания новой роли мы можем использовать команду **createrole** с флагом **--interactive**. При указание данного флага будет запрошено имя для создаваемой роли и права, которые необходимо ей присвоить. Если планируется вход по паролю для создаваемого пользователя, то мы можем также добавить флаг **-P**. Либо можно использовать команду **\password** уже после создания пользователя. Если у вас уже выполнен вход под пользователем postgres, вы можете создать новую роль следующим образом: postgres@server:~$ createuser --interactive -P Если вы предпочитаете работать без переключения учетной записи вы можете использовать следующую команду для создания роли: $ sudo -u postgres createuser --interactive -P В результате выполнения одной из команд выше вам потребуется указать название роли и права которые ей необходимо предоставить. Output Enter name of role to add: john Enter password for new role: Shall the new role be a superuser? (y/n) y Посмотреть список всех ролей можно следующим образом: # если вы вошли под пользователем postgres postgres@server:~$ psql postgres=# select rolname from pg_roles; # или так postgres=# \du Этот запрос выведет список всех имеющихся ролей. ==== Удаление пользователя ==== Если вам необходимо удалить только, что созданного пользователя можно использовать команду **dropuser**: # если вы вошли под пользователем postgres postgres@server:~$ dropuser john # без переключения учетной записи $ sudo -u postgres dropuser john Для получения более детальной информации по команде **dropuser** используем **man dropuser**. ===== Создание новой базы данных ===== Для создания новой базы данных можно использовать команду **createdb**. Чтобы указать пользователя в качестве владельца создаваемой базы мы можем добавить флаг **-O** : # если вы вошли под пользователем postgres postgres@server:~$ createdb dbname -O john # без переключения учетной записи $ sudo -u postgres createdb dbname -O john Чтобы посмотреть список все баз данных заходим в psql и выполняем команду **\l**: # если вы вошли под пользователем postgres postgres@server:~$ psql postgres=# \l Вывод команды покажет не только список существующих баз данных, но и их владельцев. Для переключения между базами данных можем использовать команду **\connect dbname**. ===== Подключение к базе данных с новой ролью ===== Поскольку мы не создавали системного пользователя john, то нам необходимо явно указать параметры подключения: postgres@server:~$ psql -U john -d dbname -h 127.0.0.1 --password Важно отметить, что при таком подключение при создании пользователя **john** необходимо обязательно задать ему пароль. После входа мы можем посмотреть данные о текущем подключении с помощью команды **\conninfo**. ===== Заключение ===== В данной статье описаны способы установки PostgreSQL, а также базовые аспекты работы с ней. Более детальную информацию по работе с данной СУБД можно узнать из официальной документации.