Nah, db_link()
akan berjalan pada proses server backend sebagai postgres pengguna.
Apakah .pgpass
Anda? file di tempat yang benar untuk postgres pengguna di mesin database?
Jika tidak, bagaimana Anda mengharapkannya untuk dibaca?
Saya pikir Anda pasti melewatkan sesuatu:
# 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)