sql >> Base de Datos >  >> RDS >> PostgreSQL

dblink no usa el archivo .pgpass

Ahora bien, db_link() se ejecutará en el proceso del servidor backend como usuario postgres.

¿Es su .pgpass archivo en el lugar correcto para el usuario postgres en la máquina de la base de datos?

Si no, ¿cómo espera que se lea?

Creo que te debes haber perdido algo:

# 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)