https://www.postgresql.org/docs/10/static/sql-createsubscription.html
CONNECTION 'conninfo' Строка подключения к издателю. За
подробности см.
https://www.postgresql.org/docs/10/static/libpq-connect.html#LIBPQ-CONNSTRING
passfile
Указывает имя файла, используемого для хранения паролей (см.
Раздел 33.15). По умолчанию ~ / .pgpass
Так что да - это должно работать. Давайте макет. Сначала я намеренно использую неверный пароль, чтобы увидеть, отражается ли это в ошибке:
t=# CREATE SUBSCRIPTION mysub CONNECTION 'host=localhost port=5433 passfile=/tmp/p user=vao dbname=t' PUBLICATION mypub;
ERROR: could not connect to the publisher: fe_sendauth: no password supplied
нет, это не так, но проверка журналов делает:
-bash-4.2$ tail /pg/d10/log/postgresql-Tue.log | grep WARN | tail -n 1
WARNING: password file "/tmp/p" has group or world access; permissions should be u=rw (0600) or less
хорошо, попробуйте использовать значение по умолчанию:
t=# CREATE SUBSCRIPTION mysub CONNECTION 'host=localhost port=5433 user=vao dbname=t' PUBLICATION mypub;
ERROR: could not connect to the publisher: fe_sendauth: no password supplied
и на этот раз даже без предупреждения! поэтому проверка chmod:
-bash-4.2$ ll ~/.pgpass
-r-------- 1 postgres postgres 1227 May 15 15:00 /home/vao/.pgpass
выглядит хорошо, но ага - нет строки для этого соединения, потому что ниже запрашивается пароль:
-bash-4.2$ psql -h localhost -p 5433 -U vao t
Password for user vao:
так:
echo '*:*:*:vao:blah' > ~/.pgpass
-bash-4.2$ psql -h localhost -p 5433 -U vao t
psql: FATAL: password authentication failed for user "vao"
password retrieved from file "/var/lib/pgsql93/.pgpass"
ага - теперь он его использует, так что вернемся к SQL:
t=# CREATE SUBSCRIPTION mysub CONNECTION 'host=localhost port=5433 user=vao dbname=t' PUBLICATION mypub;
ERROR: could not connect to the publisher: FATAL: password authentication failed for user "vao"
password retrieved from file "/var/lib/pgsql93/.pgpass"
да, вы можете использовать как указанный, так и файл pgpassword по умолчанию для подписки с логической репликацией