Postgres Tips: Arquivo de senha – pgpass

Alguns dias atrás precisei criar um script automático (shell script) de backup/restore de uma base do postgres. Os comandos que usei foram o pg_dump, para criar o backup, e psql para restaurar backup quando necessário. O banco de dados estava com as permissões de acesso configurado para solicitar senha, até mesmo se logado com o usuário postgres, o quê não acontece normalmente. Normalmente o usuário postgres acessa o banco sem a necessidade de solicitar a senha de acordo com a configuração padrão no pg_hba.conf. Os comandos do postgres, pg_dump, psql, etc.. não permitem especificar a senha através da linha de comando. Se você esta acostumado com o MySQL vai perceber a diferença. O postgres força o usuário à criar um ambiente seguro, não permitindo a especificação da senha na linha de comando como acontece nos comandos do MySQL. (mysqldump, mysql, etc.)

O postgres disponibiliza um mecanismo seguro para que você possa utilizar os comandos sem que eles solicitem a entrada de senha na linha de comando, ideal para scripts automatizados, através do arquivo .pgpass. Crie o arquivo .pgpass no seu diretório home com a permissão 0600:

$ chmod 0600 ~/.pgpass

O formato do arquivo .pgpass é o seguinte:

hostname:port:database:username:password

Exemplo:

localhost:5432:base:foo:mudar123

Agora você pode rodar os comandos do postgres sem necessidade de entrar com a senha no prompt:

$ pg_dump -c -U foo base> ~/base.sql
$ psql -U foo -d base < ~/base.sql
Please follow and like us:

Comments

    • mm By pasquati

  1. By Marcelo

    • mm By pasquati

    • mm By Douglas V. Pasqua

  2. By Claudiomiro

    • mm By Douglas V. Pasqua

  3. By Bin

    • mm By Douglas V. Pasqua

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: