Post

Utilitários CLI do PostgreSQL sem pedir senha

Utilitários CLI do PostgreSQL sem pedir senha

Se você roda ferramentas do Postgres em scripts, evite prompts usando .pgpass ou variáveis de ambiente.

Usando arquivo de senha

Crie o arquivo

1
2
$ touch ~/.pgpass
$ chmod 0600 ~/.pgpass

Cada linha define uma credencial:

1
server:port:database:username:password

Você pode usar * como curinga:

1
2
3
localhost:5432:project_a_db:jcottobboni:0yRkckAF8lYB
192.168.1.50:5432:project_b_db:jack:mCtEtSd8F08P
10.2.50.150:*:*:alice:flx1me0cTUJV

Assim os utilitários não pedem senha:

1
pg_dump -U jcottobboni -h localhost -p 5432 -Fc project_a_db > /home/jcottobboni/backup_for_project_a_db

Você pode usar outro caminho via PGPASSFILE:

1
export PGPASSFILE=~/.mycustomfile

O parâmetro -w

-w, –no-password Nunca abre prompt de senha. Se o servidor exigir senha e ela não estiver disponível (ex.: .pgpass), a conexão falha. Útil em scripts em lote sem interação.

Usando variáveis de ambiente

Ou exporte PGHOST, PGPORT, PGDATABASE, PGUSER e PGPASSWORD nos seus scripts.

References

PostgreSQL 9.3.4 Documentation - libpq - The Password File

PostgreSQL 9.3.4 Documentation - libpq - Environment Variables

Esta postagem está licenciada sob CC BY 4.0 pelo autor.