2012-07-11 17 views
19

¿Cómo puedo configurar múltiples métodos de autenticación para la misma regla de host/base de datos/usuario? Deseo poder iniciar sesión en mi usuario de postgres usando sudo -u postgres psql -U postgres (sin tener que ingresar una contraseña de PostgreSQL) y psql -U postgres --password. Algo así como lo siguiente en pg_hba.conf:Métodos de autenticación múltiple de PostgreSQL

local all    postgres      md5 
local all    postgres      peer 

que sólo puede obtener un método u otro trabajo al mismo tiempo.

Gracias.

(estoy usando PostgreSQL 9.1).

Respuesta

21

No. Solo se admite un método auth para cualquier configuración dada.

Me encantaría que Pg pudiera admitir la autenticación fall-back, donde si falla una comprobación de identidad, permite la autenticación md5. Sin embargo, no lo admite en este momento, y sospecho (no lo he verificado) que se requeriría un cambio de protocolo para admitirlo.

Lo que puede hacer es guardar la contraseña en un archivo $HOME/.pgpass para el usuario postgres sistema. Déle el modo 0600 para que solo sea legible por el usuario postgres y por root, quienes pueden obtener acceso directo a los archivos de la base de datos y la configuración de todos modos. De esta forma obtienes fácil administración y md5 auth. En algunos sistemas, es posible que deba establecer y crear un directorio de inicio para el usuario postgres antes de poder hacer esto. Consulte getent passwd postgres para ver si el usuario postgres tiene un homedir y, de ser así, dónde está.

(UPDATE: utilizado para leer $HOME/.psqlrc - que es útil, pero .pgpass es adecuado para almacenamiento de contraseñas)

+0

Ver http://www.postgresql.org/docs/9.5/static/libpq-pgpass. html para detalles –

Cuestiones relacionadas