Re: Problema con dblink

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Aracelly Collazos <aracelly(dot)ta(dot)c(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problema con dblink
Date: 2014-02-21 19:42:41
Message-ID: 20140221194240.GO4759@eldon.alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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 <tgl(at)sss(dot)pgh(dot)pa(dot)us>
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 (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Aracelly Collazos 2014-02-24 21:30:45 Trigger con Foreign Data Wrapper
Previous Message Javier Lugo Porras 2014-02-21 19:25:23 Re: FWD