, поэтому вы настраиваете сервер, сопоставление пользователей и создаете таблицы:
t=# create server l foreign data wrapper postgres_fdw options (host 'localhost', dbname 't');
CREATE SERVER
t=# create user mapping FOR postgres SERVER l;
CREATE USER MAPPING
t=# create table lt(i serial);
CREATE TABLE
t=# insert into lt default values;
INSERT 0 1
t=# create foreign table ft (i int) server l options(table_name 'lt') ;
CREATE FOREIGN TABLE
t=# select * from ft;
i
---
1
(1 row)
сейчас Если я добавлю md5 в hba перед доверием локального соединения по умолчанию, я получу:
t=# select * from ft;
ERROR: could not connect to server "l"
DETAIL: fe_sendauth: no password supplied
ивернуться:
t=# \! sed -i '43s/host/#host/' /pg/d10/pg_hba.conf
t=# select pg_reload_conf();
pg_reload_conf
----------------
t
(1 row)
t=# select * from ft;
i
---
1
(1 row)
в то время как строка:
t=# \! sed '43,43!d' /pg/d10/pg_hba.conf
#host all postgres 127.0.0.1/32 md5
Итак, моя точка зрения такова: если у вас есть локальные базы данных, вам по умолчанию не нужно манипулировать паролями, как у вас естьpeer или trust для localhost ...
update , поэтому для работы на localhost без пароля для некоторого пользователя вам нужна строка, например:
host fdw_db postgres 127.0.0.1/32 trust
toидти перед строкой, например:
host all all 127.0.0.1/32 md5
или любой другой строкой, которая ограничивает или отклоняет соединения
https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
Поскольку проверяются записи pg_hba.confпоследовательно для каждой попытки подключения порядок записей является значительным.Как правило, более ранние записи будут иметь параметры строгого сопоставления соединения и более слабые методы аутентификации, в то время как более поздние записи будут иметь более слабые параметры сопоставления и более строгие методы аутентификации.Например, можно использовать доверительную аутентификацию для локальных соединений TCP / IP, но для удаленных соединений TCP / IP требуется пароль.В этом случае запись, указывающая доверительную аутентификацию для подключений из 127.0.0.1, появится перед записью, указывающей аутентификацию по паролю для более широкого диапазона разрешенных IP-адресов клиента.