PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

dblink não usa o arquivo .pgpass


Agora então, db_link() será executado no processo do servidor backend como usuário postgres.

Seu .pgpass é arquivo no local correto para o usuário postgres na máquina do banco de dados?

Se não, como você espera que seja lido?

Acho que você deve ter perdido alguma coisa:
# 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)