pg_hba.conf решает не “кто может логиниться”, а “каким методом проверять” — и правила читаются сверху вниз, первое совпадение по типу/базе/пользователю/адресу побеждает.

# TYPE  DATABASE  USER  ADDRESS        METHOD
local   all       postgres             peer
host    all       all   127.0.0.1/32   scram-sha-256
host    mydb      app   10.0.0.0/24    scram-sha-256

peer — только для local (сверяет пользователя ОС с ролью PostgreSQL, пароль не нужен). trust — без пароля вообще, годится только на loopback в закрытом окружении. md5 устарел, scram-sha-256 — текущий стандарт. После правки — pg_ctl reload или SELECT pg_reload_conf();, restart не нужен и обрывает соединения.

#postgresql #security #sysadmin