Pgadmin III - ¿Cómo conectarse a la base de datos cuando la contraseña está vacía?
-
16-10-2019 - |
Pregunta
He instalado PostgreSQL 9.1 en mi PC (Win 7). Tengo una pequeña aplicación Java que se conecta con éxito con login=sa
y password=""
. La conexión funciona.
Sin embargo, se rechaza de la propia Pgadmin III. Yo obtengo:
Error connecting to the server: fe_sendauth: no password supplied
¿Cómo me conecto a mi base de datos desde Pgadmin III con una contraseña vacía?
EDITAR
Esto es solo una prueba, no código de producción.
Solución
Puedo conectarme a mi instancia de Postgres desde Pgadmin III sin una contraseña para ningún usuario, incluidos superusadores como postgres
.
Debido a que está conectando OK de otro cliente, no hay razón para que no debe conectarse desde PGADmin si están en la misma estación de trabajo, a menos que alguna regla de firewall en el cliente mismo esté permitiendo un programa pero no otro.
Si el problema es específico para este cliente, es posible que deba cambiar uno o más de:
- pg_hba.conf
host sa all 192.168.0.nnn/32 trust
- postgresql.conf
listen_addresses = '*'
- El firewall en su servidor Postgres, por ejemplo, iptables:
-A INPUT -s 192.168.0.nnn -m state --state NEW -j ACCEPT
Pero Te recomiendo que no hagas nada de esto. El manual dice lo siguiente con buena razón:
La autenticación de confianza solo es adecuada para las conexiones TCP/IP si confía en cada usuario en cada máquina que puede conectarse al servidor por las líneas pg_hba.conf que especifican la confianza. Rara vez es razonable usar la confianza para cualquier conexión TCP/IP que no sean las de Localhost (127.0.0.1).
En su lugar, considere cualquiera:
- Uso de una contraseña e identificación de MD5
- Puerto de túneles 5432 sobre SSH
Otros consejos
Encontré esta respuesta en otro lugar.
Si su DB está en el host local, intente dejar el campo de host en blanco en la conexión en lugar de usar "localhost" o "127.0.0.1". Esto le dice a PGADmin que se conecte a través del enchufe UNIX local en lugar de TCP.