En primer lugar, es importante comprender que para la mayoría de las distribuciones de Unix, el usuario predeterminado de Postgres no requiere ni utiliza una contraseña para la autenticación. En su lugar, dependiendo de cómo se instaló originalmente Postgres y qué versión está utilizando, el método de autenticación predeterminado será ident
o peer
.
ident
la autenticación utiliza el servidor de identificación del sistema operativo que se ejecuta en el puerto TCP 113 para verificar las credenciales del usuario.
peer
la autenticación, por otro lado, se usa para conexiones locales y verifica que el nombre de usuario registrado en el sistema operativo coincida con el nombre de usuario de la base de datos de Postgres.
Iniciar sesión y conectarse como usuario predeterminado
Para la mayoría de los sistemas, el usuario predeterminado de Postgres es postgres
y no se requiere una contraseña para la autenticación. Por lo tanto, para agregar una contraseña, primero debemos iniciar sesión y conectarnos como postgres
usuario.
$ sudo -u postgres psql
Si se conectó con éxito y está viendo el psql
indicador, vaya a Cambiar la contraseña sección.
Si recibió un error que indica que la base de datos "postgres" no existe, intente conectarse a la template1
base de datos en su lugar y, si tiene éxito, continúe con Cambiar la contraseña .
$ sudo -u postgres psql template1
Error de autenticación
Si recibe un error de autenticación al intentar conectarse a psql
cliente, es posible que deba modificar el archivo de configuración de autenticación de Postgres (pg_hfa.conf).
Abra el archivo de configuración, normalmente ubicado en /etc/postgresql/#.#/main/pg_hba.conf
, donde #.#
es la versión de Postgres que está utilizando:
$ sudo nano /etc/postgresql/9.3/main/pg_hba.conf
El archivo de configuración de autenticación es una lista de reglas de autenticación. Desplácese hacia abajo en el archivo hasta que localice la primera línea que muestra postgres
usuario en la tercera columna (si existe tal línea). Descomente la línea si es necesario (elimine el punto y coma) o, de lo contrario, si la línea falta por completo, agregue la siguiente línea en la parte superior del archivo y guarde los cambios:
local all postgres peer
Esta regla de autenticación simplemente le dice a Postgres que para las conexiones locales establecidas a todas las bases de datos para el usuario postgres
, autentíquese usando el peer
protocolo.
Nota:algunas versiones anteriores de Postgres prefieren el método de autenticación predeterminado de ident, pero la mayoría de las instalaciones modernas utilizarán pares como se especifica arriba. Es posible que deba probar ambos si sus resultados difieren.
Ahora, con su archivo de configuración actualizado, repita los pasos en Iniciar sesión y conectarse como usuario predeterminado sección para intentar conectarse como postgres
predeterminado usuario. Una vez que lo haya hecho, proceda a cambiar la contraseña.
Cambiando la Contraseña
Con una conexión ahora establecida a Postgres en el psql
indicador, emita el ALTER USER
comando para cambiar la contraseña de postgres
usuario:
postgres=# ALTER USER postgres PASSWORD 'myPassword';
ALTER ROLE
Si tiene éxito, Postgres generará una confirmación de ALTER ROLE
como se ve arriba.
Finalmente, salga de psql
cliente usando el \q
comando.
postgres=# \q
Estás listo. El postgres
predeterminado el usuario ahora tiene una contraseña asociada con la cuenta para usar en sus otras aplicaciones.