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

Введение.

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

Все статьи посвящённые PostgreSQL см.

тэг БД или поиск postgres

Подготовка PostgreSQL Linux часть 3.

  • Стенд
    • Cервер ALT Linux, имя: lin-pq; IP 10.0.2.11;
      • PostgreSQL X.X
        • метод аутентификации md5
    • Simply Linux, имя: lin-sl, IP=10.0.2.30
    • Пользователь. имя: trt

Пользователь PostgreSQL Linux часть3.

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

Пример атрибутов пользователя postgres для PostgreSQL Linux часть3.

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

Многие программы требуют при конфигурации своих служб , устанавливать пароль для работы с БД.

  • PostgreSQL предлагает несколько вариантов аутентификации:
    • trust
    • password
      • scram-sha-256
      • md5
      • password
    • GSSAPI
    • SSPI
    • ident
    • peer
    • LDAP
    • RADIUS
    • по сертификату SSL
    • RAM
    • BSD

Из списка приведённого выше, остановимся на методе аутентификации md5, как более распространённым. Для включения md5, необходимо внести изменения в файл /var/lib/pgsql/data/pg_hba.conf.

Перед выполнением создадим резервную копию файла pg_hba.conf.

$ sudo su - postgres -s /bin/bash -bash-3.2 cp -n /var/lib/pgsql/data/pg_hba.conf pg_hba.conf.orig

Возврат старой копии файла pg_hba.conf, если требуется.

$ sudo su - postgres -s /bin/bash -bash-3.2$ cp pg_hba.conf.orig /var/lib/pgsql/data/pg_hba.conf

Смотрим содержание файла pg_hba.conf.

$ sudo su - postgres -s /bin/bash
-bash-3.2$ psql
postgres=# SHOW hba_file;
hba_file
---------------------------------
/var/lib/pgsql/data/pg_hba.conf 
(1 строка) 

Из листинга показанного выше видно, что файл pg_hba.conf содержит одну строку.

Создадим запрос для демонстрации содержимого файла pg_hba.conf до редактирования.

$ sudo su - postgres -s /bin/bash -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 -------------+-------+---------------+-----------+-----------+------------- 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

Как видно из листинга в качестве метода аутентификации, для PostgreSQL Linux часть3, стоит trust.

Установка пароля для PostgreSQL Linux часть3.

Управление паролями и ролями в PqSQL осуществляется с помощью нескольких SQL команд. Выбор зависит от задач которые необходимы для работы.

  • Список команд для управления ролями и паролями PqSQL:
    • CREATE ROLE
    • ALTER ROLE
    • password — входит в сборник утилиты pqsql.

Для нашей задачи выбираем команду password.

Дополнительные сведения про роли и пароли читайте в следующих частях.

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

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

$ sudo su - postgres -s /bin/bash -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

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

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

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

$ sudo su - postgres -s /bin/bash
-bash-3.2$ psql
postgres=# SELECT line_number, error FROM pg_hba_file_rules;  line_number | error 
-------------+-------
           1 | 
           2 | 
(2 строки)

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

$ sudo su - postgres -s /bin/bash -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 
---------------------
 scram-sha-256
(1 строка)
\q

Таким образом мы установили метод аутентификации md5 с алгоритмом шифрования, scram-sha-256.

Заключение.

В приведённом выше примеры было показано, как установить пароль и метод аутентификации с шифрованием для привилегированного пользователя postgres. Для этого мы использовали самый распространённый метод аутентификации md5.

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

Продолжение смотри в четвёртой части.

Полезные ссылки.

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

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

Copyright © 2011-2024
Все права защищены.
При перепечатке указать источник: kabtim.ru
Контакты