Re: Providing the password to psql from a script - Mailing list pgsql-general

From Willem Herremans
Subject Re: Providing the password to psql from a script
Date
Msg-id 402F64BA.1090803@belgacom.net
Whole thread Raw
In response to Re: Providing the password to psql from a script  (Stephan Szabo <sszabo@megazone.bigpanda.com>)
List pgsql-general
Stephan Szabo wrote:

>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.
>
>---------------------------(end of broadcast)---------------------------
>TIP 5: Have you checked our extensive FAQ?
>
>               http://www.postgresql.org/docs/faqs/FAQ.html
>
>
>
>
Marvellous!. That solves my problem!

Thank you.

Willem Herremans

--
Willem Herremans               E-mail: willem.herremans@belgacom.net
Dennenlaan 55
B-2520 Ranst                   Tel. : +32 3 485 64 09
BELGIUM



pgsql-general by date:

Previous
From: Martijn van Oosterhout
Date:
Subject: Re: Providing the password to psql from a script
Next
From: Tom Lane
Date:
Subject: Re: SQL99 IGNORE