PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

dblink n'utilise pas le fichier .pgpass

Maintenant, db_link() sera exécuté sur le processus du serveur principal en tant qu'utilisateur postgres.

Est-ce que votre .pgpass fichier au bon endroit pour l'utilisateur postgres sur la machine de la base de données ?

Si non, comment pensez-vous qu'il sera lu ?

Je pense que tu as dû louper quelque chose :

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