From: | Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com> |
---|---|
To: | Willem Herremans <willem(dot)herremans(at)belgacom(dot)net> |
Cc: | Martijn van Oosterhout <kleptog(at)svana(dot)org>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Providing the password to psql from a script |
Date: | 2004-02-15 09:45:41 |
Message-ID: | 20040215014328.Y77529@megazone.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Sun, 15 Feb 2004, Willem Herremans wrote:
> Martijn van Oosterhout wrote:
>
> >On Sat, Feb 14, 2004 at 05:11:14PM +0100, Willem Herremans wrote:
> >
> >
> >>I have used the Tcl command
> >>
> >> set psqlChannel [open "|psql $dbname" RDWR]
> >>
> >>to create a channel that effectively becomes the input/output channel
> >>for psql. By writing to that channel, SQL statements are sent to psql,
> >>by reading from that channel, the results are received from psql.
> >>
> >>That works fine, as long as psql does not prompt for a password. The
> >>problem is that psql does not use this channel for prompting for or
> >>reading the password. Instead, the password is prompted for on, and read
> >>from, the terminal from which the tcl application was started and that
> >>is not what I want, because the Tcl application has already received the
> >>password from the user. It is, as if psql does not use stdout and stdin
> >>for the password.
> >>
> >>
> >
> >Look in the manpage for psql, there are several ways to stop it asking for
> >passwords, including the PGPASS environment variable, tne .pgpass file and
> >setting the user as trust in the config.
> >
> >Any of these will do what you want...
> >
> >Hope this helps,
> >
> >
> I am afraid this does not help me very much.
>
> The manpage of psql neither mentions the PGPASS environment variable,
> nor the .pgpass file.
It's actually in the libpq documentation...
The file .pgpass in a user's home directory is a file
that can contain passwords to be used if the connection requires a
password (and no password has been specified otherwise).
This file should have lines of the following format:
hostname:port:databsae:username:password
Each of the first four fields may be a literal value, or * which matches
anything. The password field from the first line that matches the
current connection parameters will be used. (Therefore, put more-specific
entries first when you are using wildcards.)
If an entry needs to contain : or
\, escape this character with \.
The permissions on .pgpass must disallow any
access to world or group; achieve this by the command
chmod 0600 ~/.pgpass
If the permissions are less strict than this, the file will be ignored.
From | Date | Subject | |
---|---|---|---|
Next Message | Martijn van Oosterhout | 2004-02-15 09:50:35 | Re: Providing the password to psql from a script |
Previous Message | Pascal Polleunus | 2004-02-15 09:44:48 | Re: inheritance vs performance |