Как установить PostgreSQL Linux часть 3.

Введение.

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

Пользователь postgres.

При установке БД, создаётся пользователь, который регистрируется в операционной системе и имеет имя — postgres. Пользователь обладает ролью суперпользователя для кластера PqSQL и методом аутентификации из «коробки» trust.

Атрибуты пользователя postgres.

$ id postgres
uid=46(postgres) gid=46(postgres) группы=46(postgres)

Метод trust позволяет пользователю подключённому к консоле сервера входить в профиль postgres без пароля .

Многие сервисные приложения требуют, при конфигурации своих служб, устанавливать пароль к своей БД. Сервер PqSQL, предлагает несколько вариантов аутентификации, остановимся на методе аутентификации md5. Что бы этот метод заработал, необходимо внести изменения в файл /var/lib/pgsql/data/pg_hba.conf. Перед выполнением создадим резервную копию файла pg_hba.conf

//создание резервной копию файла -bash-3.2$ cp -n /var/lib/pgsql/data/pg_hba.conf pg_hba.conf.orig //возврат старой копии -bash-3.2$ cp pg_hba.conf.orig /var/lib/pgsql/data/pg_hba.conf

Запись /var/lib/pgsql/data/pg_hba.conf до редактирования:

-bash-3.2$ psql postgres=# SHOW hba_file; hba_file --------------------------------- /var/lib/pgsql/data/pg_hba.conf (1 строка) postgres=# SELECT line_number, type, database, user_name, address,auth_method FROM pg_hba_file_rules; line_number | type | database | user_name| address | auth_method -------------+-------+---------------+-----------+-----------+------------- 84 | local | {all} | {all} | | trust 86 | host | {all} | {all} | 127.0.0.1 | trust 88 | host | {all} | {all} | ::1 | trust 91 | local | {replication} | {all} | | trust 92 | host | {replication} | {all} | 127.0.0.1 | trust 93 | host | {replication} | {all} | ::1 | trust (6 строк) \q

 Устанавливаем пароль для суперпользователя postgres. Если пароль не задан, стоит NULL — пройти регистрацию по паролю этот пользователь не сможет

Пароли пользователей БД PqSQL находятся в системном каталоге /var/lib/pgsql/data/pg_authid. Управлять паролями можно используя SQL-запросы CREATE ROLE и ALTER ROLE или командой password входящей в сборник утилиты pqsql.

-bash-3.2$ psql 
postgres=# \password postgres
Введите новый пароль: 
Повторите его: 
postgres=# \q

Вносим изменения в столбец database — БД replication нас сейчас не интересуют — все базы находятся на одном сервере, реплик нет

-bash-3.2$ echo 'local all all md5' > /var/lib/pgsql/data/pg_hba.conf -bash-3.2$ echo 'host all all all md5' >> /var/lib/pgsql/data/pg_hba.conf

Перегружаем сервер для перечитывания новых значений.

bash-3.2$ psql
postgres=# SELECT pg_reload_conf();
pg_reload_conf 
----------------
 t
(1 строка)
\q

Проверяем наши действия на ошибки.

-bash-3.2$ psql
postgres=# SELECT line_number, error FROM pg_hba_file_rules WHERE error IS NOT NULL;
line_number | error 
-------------+-------
(0 строк)
\q

Смотрим какой метод аутентификации представлен после наших действий.

-bash-3.2$ psql postgres=# SELECT line_number, type, database, user_name, address,auth_method FROM pg_hba_file_rules; line_number | type | database | user_name | address | auth_method -------------+-------+----------+-----------+---------+------------- 1 | local | {all} | {all} | | md5 2 | host | {all} | {all} | all | md5 (2 строки) \q

Смотрим алгоритм хеширования пароля для password_encryption.

-bash-3.2$ psql
postgres=# SHOW password_encryption;
 password_encryption 
 md5
(1 строка)
\q

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Index