sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo establecer la contraseña de usuario predeterminada en PostgreSQL

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.