Thread: passing passords to pgsql/pg_create/pg_dump programmatically
Hello, I have written a program perl/Tkprogram, based on postgres. For maintenance reasons in my program I use these commands: `dropdb -U postgres -h $BACKUP_SERVER $BACKUP_DATABASE_NAME`; `createdb -U postgres -h $BACKUP_SERVER $BACKUP_DATABASE_NAME`; `pg_dump -U postgres -h $DATABASE_SERVER $DATABASE_NAME | psql - U postgres -h $BACKUP_SERVER $BACKUP_DATABASE_NAME`; my @psqlOutput = `psql -l -U postgres -h $_`; my program has a graphic interface but whenever I use these command, postgres ask for passord in the command line. How can I give these commands the right passowrd programmatically or how can I interact with these to give the passwords by a graphic box? Thanks and best refards, Filippo
filippo wrote: > Hello, > > I have written a program perl/Tkprogram, based on postgres. For > maintenance reasons in my program I use these commands: > > `dropdb -U postgres -h $BACKUP_SERVER $BACKUP_DATABASE_NAME`; > `createdb -U postgres -h $BACKUP_SERVER $BACKUP_DATABASE_NAME`; > `pg_dump -U postgres -h $DATABASE_SERVER $DATABASE_NAME | psql - > U postgres -h $BACKUP_SERVER $BACKUP_DATABASE_NAME`; > > my @psqlOutput = `psql -l -U postgres -h $_`; > > > my program has a graphic interface but whenever I use these command, > postgres ask for passord in the command line. How can I give these > commands the right passowrd programmatically or how can I interact > with these to give the passwords by a graphic box? You can use the PGPASSWORD environment variable, or the ~/.pgpass file (which can actually be somewhere else by using the PGPASSFILE environment variable, allowing you to store passwords in /tmp or something like that, to avoid destroying a .pgpass file the user may have). -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support
* "filippo" <filippo2991@virgilio.it> wrote: > > Hello, > > I have written a program perl/Tkprogram, based on postgres. For > maintenance reasons in my program I use these commands: > > `dropdb -U postgres -h $BACKUP_SERVER $BACKUP_DATABASE_NAME`; > `createdb -U postgres -h $BACKUP_SERVER $BACKUP_DATABASE_NAME`; > `pg_dump -U postgres -h $DATABASE_SERVER $DATABASE_NAME | psql - > U postgres -h $BACKUP_SERVER $BACKUP_DATABASE_NAME`; > > my @psqlOutput = `psql -l -U postgres -h $_`; > > > my program has a graphic interface but whenever I use these command, > postgres ask for passord in the command line. How can I give these > commands the right passowrd programmatically or how can I interact > with these to give the passwords by a graphic box? $ dropdb --help $ createdb --help $ pg_dump --help As you can see, all of these command line utilities accept the -W parameter followed by the password. Alternatively you can configure PostgreSQL to allow connections from certain clients without password authentication: http://www.postgresql.org/docs/8.2/static/client-authentication.html -- Lars Haugseth "If anyone disagrees with anything I say, I am quite prepared not only to retract it, but also to deny under oath that I ever said it." -Tom Lehrer
On 20/03/2007 14:04, Lars Haugseth wrote: > As you can see, all of these command line utilities accept the -W > parameter followed by the password. Correct me if I'm wrong, but doesn't -W simply force a prompt from the password? - it doesn't accept the password on the command line. Using the .pgpass file allows command line utilities to run unattended without having to supply a password manually. Ray. --------------------------------------------------------------- Raymond O'Donnell, Director of Music, Galway Cathedral, Ireland rod@iol.ie ---------------------------------------------------------------