Utilizando comandos do PostgreSQL sem digitar senha

jcottobboni

João Carlos Ottobboni

Posted on March 21, 2021

Utilizando comandos do PostgreSQL sem digitar senha

As vezes você precisa utilizar comandos no terminal ou executa-los em scripts, e as senhas podem ser um problema para se lidar, agora não mais:

Fornecendo a senha com arquivo de senhas

Criando o arquivo de configuração

$ touch ~/.pgpass
$ chmod 0600 ~/.pgpass
Enter fullscreen mode Exit fullscreen mode

Cada linha no arquivo define uma credencial para conexão

localhost:5432:project_a_db:jcottobboni:0yRkckAF8lYB 192.168.1.50:5432:project_b_db:jack:mCtEtSd8F08P 10.2.50.150:*:*:alice:flx1me0cTUJV
Enter fullscreen mode Exit fullscreen mode

Assim você consegue executar comandos no terminal ou dentro de arquivos bash sem precisar digitar uma senha.

pg_dump -U jcottobboni -h localhost -p 5432 -Fc project_a_db > /home/jcottobboni/backup_for_project_a_db
Enter fullscreen mode Exit fullscreen mode

Não e obrigatório utilizar o mesmo caminho para o arquivo especificado na criação do arquivo, o postgres fornece a configuração para customização do caminho.

export PGPASSFILE=~/.mycustomfile
Enter fullscreen mode Exit fullscreen mode

O parâmetro -w

w, — no-password nunca emita um prompt de senha. Se o servidor exigir autenticação por senha e uma senha não estiver disponível por outros meios, como um arquivo .pgpass, a tentativa de conexão falhará. Essa opção pode ser útil em tarefas em lote e scripts em que nenhum usuário está presente para inserir uma senha

Fornecendo senha utilizando variáveis de ambiente

Outra maneira é definir variáveis de ambiente, você pode definir PGHOST, PGPORT, PGDATABASE, PGUSER e PGPASSWORD e usá-lo em seus scripts

Referências
PostgreSQL 9.3.4 Documentation — libpq — Environment Variables
PostgreSQL 9.3.4 Documentation — libpq — The Password File

💖 💪 🙅 🚩
jcottobboni
João Carlos Ottobboni

Posted on March 21, 2021

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related