domingo, 8 de enero de 2012

Postgres : Ejecutar script en psql sin password

Cuando ejecutamos un script en psql no hay opciones para pasar el password como parámetro. PostgreSQL ofrece dos mecanismos para que no pregunte la constraseña. Esto es útil cuando vamos a ejecutar algún tipo de script.

  1. Variable. La primera opción es definir la variable PGPASSWORD en nuestro script. Podemos poner export PGPASSWORD=miContraseña

  2. Archivo.  Podemos crear el archivo ~/.pgpass (está el home), hay que darle los permisos 600 ( chmod 600 ~/.pgpass ) . Si tiene otros permisos postgreSQL lo ignora.El formato del archivo es el siguiente:
    hostname:port:database:username:password
    Podemos utilizar el * como comodín en lugar de alguna de las partes
    Podemos cambiar la ruta del archivo cambiando la variable PGPASSFILEpara que apunte a otra ruta
Usando cualquiera de estos métodos de postgres  no nos pedirá la contraseña al ejecutar los script. Se recomienda por motivos de seguridad almacenar la constraseña en el archivo, porque las variables podrían ser visibles por otros usuarios, mientras que el archivo no.

FUENTE:
http://www.postgresql.org/docs/9.1/interactive/libpq-envars.html

http://www.postgresql.org/docs/9.1/interactive/libpq-pgpass.html

No hay comentarios: