passing passords to pgsql/pg_create/pg_dump programmatically

Started by filippoabout 19 years ago4 messagesgeneral
Jump to latest
#1filippo
filippo2991@virgilio.it

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

#2Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: filippo (#1)
Re: passing passords to pgsql/pg_create/pg_dump programmatically

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

#3Lars Haugseth
njus@larshaugseth.com
In reply to: filippo (#1)
Re: passing passords to pgsql/pg_create/pg_dump programmatically

* "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

In reply to: Lars Haugseth (#3)
Re: passing passords to pgsql/pg_create/pg_dump programmatically

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
---------------------------------------------------------------