pg_dump ejemplos consola postgresql pg-dump

postgresql - ejemplos - ¿Cómo puedo obtener pg_dump para autenticarse correctamente?



pg_dump postgresql ejemplos (1)

He intentado usar la variable de host PGPASSWORD y .pgpass y ninguno de estos dos me permitirá autenticarte en la base de datos. Tengo chmod ''d .pgpass para los permisos apropiados y también intenté:

export PGPASSWORD=mypass and PGPASSWORD=mypass

La contraseña CONTIENE un / sin embargo lo estaba encerrando en comillas simples PGPASS=''mypass/' y todavía no se autenticará.

Estoy corriendo:

pg_dump dbname -U username -Fc

y todavía recibo

pg_dump: [archiver (db)] connection to database "dbname" failed: FATAL: Peer authentication failed for user "username"


La solución rápida

El problema es que está tratando de realizar peer autenticación de peer local basada en su nombre de usuario actual. Si desea utilizar una contraseña, debe especificar el nombre de host con -h .

pg_dump dbname -U username -h localhost -F c

Explicación

Esto se debe a lo siguiente en su pg_hba.conf

local all all peer host all all 127.0.0.1/32 md5

Esto le dice a Postgres que use peer autenticación de peer para usuarios locales, lo que requiere que el nombre de usuario de postgres coincida con su nombre de usuario actual del sistema. La segunda línea se refiere a las conexiones que usan un nombre de host y le permitirá autenticarse con una contraseña a través del método md5 .

Mi configuración preferida de desarrollo

NOTA : Esto solo debe usarse en estaciones de trabajo de usuario único. Esto podría conducir a una gran vulnerabilidad de seguridad en una máquina de producción o multiusuario.

Al desarrollar contra una instancia de postgres local, me gusta cambiar mi método de autenticación local para trust . Esto permitirá la conexión a postgres a través de un socket de Unix local como cualquier usuario sin contraseña. Se puede hacer simplemente cambiando el peer anterior para trust y volver a cargar postgres.

# Don''t require a password for local connections local all all trust