Редактирование файла pg_hba.conf

Расположение конфигурационного файла:

=> SHOW hba_file;
             hba_file              
-----------------------------------
 /usr/local/pgsql/data/pg_hba.conf
(1 row)


Мы можем посмотреть сам файл (опустим пустые строки и комментарии):

postgres$ egrep '^[^#]' /usr/local/pgsql/data/pg_hba.conf
local   all             all                                     trust
host    all             all             127.0.0.1/32            trust
host    all             all             ::1/128                 trust
local   replication     all                                     trust
host    replication     all             127.0.0.1/32            trust
host    replication     all             ::1/128                 trust

Другой способ (начиная с версии 10) - представление pg_hba_file_rules:

=> 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 rows)


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

postgres$ echo 'local all all trast' >> /usr/local/pgsql/data/pg_hba.conf
=> SELECT line_number, error
FROM pg_hba_file_rules
WHERE error IS NOT NULL;
 line_number |                 error                 
-------------+---------------------------------------
          94 | invalid authentication method "trast"
(1 row)

В противном случае мы бы узнали об ошибке только из журнала после перечитывания конфигурации.


Конец демонстрации.