domingo, 23 de setembro de 2007

PGUSER e PGPASSWORD

Olá!

Para trabalhar com mais flexibilidade no DOS, utilize-se das variáveis de ambiente PGUSER e PGPASSWORD.

Por exemplo, ao criar um banco de dados novo, você usa createdb, certo?

Pois é. Dai se você não usar o parâmetro -U, ele vai achar que você quer usar o usuário logado no windows. E quando você passa, lá vem o pedido de senha para o usuário informado.

Consequentemente você não consegue automatizar muita coisa, como uma instalação padrão por exemplo.

Sugiro que você crie um arquivo BAT como no exemplo abaixo:


cd "c:\arquivos de programas\postgresql\8.2\bin"
set PGUSER=postgres
set PGPASSWORD=postgres
cls


Basta, então, colocar este arquivo no PATH do windows, e ao entrar no DOS, não importa em qual diretório você esteja, bastará digitar o nome do seu arquivo BAT e pronto: você poderá simplesmente digitar o comando que deseja, sem informar o usuário nem a senha.

Um comentário:

Telles disse...

O problema desta abordagem é que você deixa a sua senha desprotegida. Uma sugestão é você utilizar o tipo de autenticação IDENT ou TRUST (configurado no arquivo 'pg_hba.conf')para conexões locais. No Windows não é comum trocar de usuário no shell (linha de comando), por isso costumam sempre utilizar o mesmo usuário que se loga no Windows para utilizar as ferramentas do PostgreSQL. Em ambiente *nix, é comum abrir o shell e trocar o usuário, facilitando o uso do IDENT. Eu realmente não utilizaria o TRUST num ambiente de produção, mesmo localmente, mas eu também nunca utilizei um PostgreSQL em Windows num ambiente de produção (bom na verdade nem em teste também)...

Minha lista de blogs