Nyní tedy db_link()
bude spuštěn na procesu backendového serveru jako uživatel postgres.
Je váš .pgpass
soubor na správném místě pro uživatele postgres na databázovém počítači?
Pokud ne, jak očekáváte, že se bude číst?
Myslím, že vám muselo něco uniknout:
# ls -l /var/lib/postgresql/.pgpass
-rw------- 1 root root 79 Jun 24 08:10 /var/lib/postgresql/.pgpass
(meanwhile, in psql...)
dblinklocal=# SELECT dblink_connect('conn1', 'hostaddr=127.0.0.1 port=5432 dbname=dblinkremote user=testuser');
ERROR: could not establish connection
DETAIL: fe_sendauth: no password supplied
# chown postgres:postgres .pgpass
dblinklocal=# SELECT dblink_connect('conn1', 'hostaddr=127.0.0.1 port=5432 dbname=dblinkremote user=testuser');
dblink_connect
----------------
OK
(1 row)