Re: Providing the password to psql from a script
От | Stephan Szabo |
---|---|
Тема | Re: Providing the password to psql from a script |
Дата | |
Msg-id | 20040215014328.Y77529@megazone.bigpanda.com обсуждение исходный текст |
Ответ на | Re: Providing the password to psql from a script (Willem Herremans <willem.herremans@belgacom.net>) |
Ответы |
Re: Providing the password to psql from a script
|
Список | 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.
В списке pgsql-general по дате отправления: