Probablemente esté usando ident
o incluso trust
autenticación. Una breve sinopsis de los métodos de autenticación más comunes:
trust
- Usted puede iniciar sesión en no importa qué.
ident
- Puede iniciar sesión si su nombre de usuario de UNIX es el mismo que el nombre de usuario de PostgreSQL.
md5
- Puede iniciar sesión si su contraseña (cifrada con md5
) es correcta.
Editar: PostgreSQL 9.0 introdujo el método de autenticación peer
. De lo que deduzco, ident
y peer
tienen el mismo propósito —, su inicio de sesión está determinado por el nombre de usuario de su sistema operativo — pero ident
habla con un servidor de identidades que escucha en el puerto 113, mientras que peer
busca sus credenciales con una llamada al sistema. Ver http://www.postgresql.org/docs/9.1/static/auth-methods.html#AUTH-IDENT
localizar el archivo pg_hba.conf, y ver si puede encontrar algo que se parece a esto:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all ident
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Cuando intenta conectarse, PostgreSQL pasa a través de esta línea por línea. Si el tipo de conexión (por ejemplo, local
, host
), la base de datos, el usuario (usuario de la base de datos, no el usuario del sistema) y la dirección coinciden, utilizará el método de autenticación proporcionado.
Si desea solicitar una contraseña para acceder a su propio usuario PostgreSQL, podría agregar una línea como esta en la superior, antes de la línea local all all ident
:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
local mydbname myusername md5
asegúrese de reiniciar PostgreSQL después de cambiar pg_hba.conf
.
¿Cómo se ve el archivo 'database.yml'? Contraseñas en postgre funcionan para mí. – Matchu