Aracelly Collazos escribió:
> Actualice postgres de la version 9.1 a la version 9.3, trabajo con dblink y
> para establecer la conexion siempre use:
> SELECT dblink_connect('dbname=nombreBD');
> pero me sale el siguiente error:
> ERROR:  could not establish connection
> DETAIL:  fe_sendauth: no password supplied
> entiendo que el problema se soluciona de la siguiente manera:
> SELECT dblink_connect('dbname=nombreBD password=123456789');
> quisiera saber si de alguna manera se puede trabajar sin enviarle el
> password, siempre lo hice asi.. y ahora deberia actualizar en todas las
> funciones que se usa el dblink para que envie el password. Además segun la
> documentacion oficial de postgresql
> http://www.postgresql.org/docs/9.3/static/contrib-dblink-connect.html no es
> necesario enviar el password. Espero que me puedan ayudar

Me parece poco creíble que tu actualización sea desde 9.1.  Hace mucho
tiempo hubo un cambio en el comportamiento de dblink_connect(), para
impedir que se usaran conexiones sin passwords, pero eso fue durante el
desarrollo de 8.4, no en 9.1:

Author: Tom Lane <[email protected]>
Branch: master Release: REL8_4_BR [cae7ad906] 2008-09-22 13:55:14 +0000

    Fix dblink_connect() so that it verifies that a password is supplied in the
    conninfo string *before* trying to connect to the remote server, not after.
    As pointed out by Marko Kreen, in certain not-very-plausible situations
    this could result in sending a password from the postgres user's .pgpass 
file,
    or other places that non-superusers shouldn't have access to, to an
    untrustworthy remote server.  The cleanest fix seems to be to expose libpq's
    conninfo-string-parsing code so that dblink can check for a password option
    without duplicating the parsing logic.
    
    Joe Conway, with a little cleanup by Tom Lane


Una solución fácil sería usar dblink_connect_u() en vez de
dblink_connect().  Pero el uso de parámetros de conexión para dblink
usando un FDW puede resultar mejor a la larga.  Observa que no necesitas
cambiar todas tus consultas, solamente cambiar los dblink_connect() para
que usen un nombre de conexión:
http://www.postgresql.org/docs/current/static/contrib-dblink-connect.html
donde previamente has configurado los parámetros de conexión usando
CREATE SERVER y CREATE USER MAPPING usando dblink_fdw.

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a