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.