From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | nageswara Bandla <nag(dot)bandla(at)gmail(dot)com>, George Neuner <gneuner2(at)comcast(dot)net> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Pgagent is not reading pgpass file either in Windows or Linux. |
Date: | 2018-06-05 00:36:24 |
Message-ID: | 5f99abf5-1d6c-d559-ff4d-f461ec5408ba@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 06/04/2018 03:31 PM, nageswara Bandla wrote:
> I have figured out the issue with pgAgent both in Windows and Linux.
>
> PgAgent seems to ignore pgpass.conf/.pgpass whenever it has 127.0.0.1
> (127.0.0.1:5432:*:postgres:postgres) throws an error:
Could it be that hosts is not set up for?:
127.0.0.1 localhost
See below also.
>
> *DEBUG: Creating DB connection: user=postgres port=5432
> hostaddr=127.0.0.1 dbname=linuxpostgresdb*
https://www.postgresql.org/docs/10/static/libpq-connect.html#LIBPQ-PARAMKEYWORDS
hostaddr
"...
If hostaddr is specified without host, the value for hostaddr gives the
server network address. The connection attempt will fail if the
authentication method requires a host name.
...
"
So in your pg_hba.conf are you using a host name or IP address?
Looks like pgagent is using hostaddr w/o host and that will cause an
issue on psql also:
.pgpass
127.0.0.1:*:*:aklaver:some_pwd
psql "hostaddr=127.0.0.1 dbname=test user=aklaver"
Password:
Null display is "NULL".
psql (10.4)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384,
bits: 256, compression: off)
Type "help" for help.
Adding a host name works:
psql "hostaddr=127.0.0.1 host=localhost dbname=test user=aklaver"
Null display is "NULL".
psql (10.4)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384,
bits: 256, compression: off)
Type "help" for help.
Using host alone works:
aklaver(at)tito:~> psql "host=127.0.0.1 dbname=test user=aklaver"
Null display is "NULL".
psql (10.4)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384,
bits: 256, compression: off)
Type "help" for help.
>
> *WARNING: Couldn't create the primary connection (attempt 1):
> fe_sendauth: no password supplied*
>
> *
> *
>
> The solution could be update .pgpass to have (
> localhost:5432:*:postgres:postgres ) and then pgagent works fine without
> issues.
>
>
> I think, pgagent is not inline with libpq.dll while passing host address
> parameter. I have raised this concern with pgagent github where exactly
> they need to change
>
> the code in order for pgagent to be in line with psql program.
>
>
> https://github.com/postgres/pgagent/issues/14
>
>
> On Fri, Jun 1, 2018 at 9:43 AM, nageswara Bandla <nag(dot)bandla(at)gmail(dot)com
> <mailto:nag(dot)bandla(at)gmail(dot)com>> wrote:
>
>
>
> On Thu, May 31, 2018 at 5:16 PM, George Neuner <gneuner2(at)comcast(dot)net
> <mailto:gneuner2(at)comcast(dot)net>> wrote:
>
> On Thu, 31 May 2018 15:40:21 -0500, nageswara Bandla
> <nag(dot)bandla(at)gmail(dot)com <mailto:nag(dot)bandla(at)gmail(dot)com>> wrote:
>
> >On Thu, May 31, 2018 at 12:57 PM, George Neuner <gneuner2(at)comcast(dot)net <mailto:gneuner2(at)comcast(dot)net>>
> >wrote:
> >
> >> It just occurred to me that you said PGPASSFILE was set to
> >>
> >> %APPDATA%/postgresql/pgpass.conf
> >>
> >>
> >> The problem may be that when LocalSystem expands %APPDATA%, it is
> >> finding its own directory, which might be any of:
> >>
> >> C:\Windows\ServiceProfiles\LocalService\appdata
> >> C:\Windows\System32\config\systemprofile\AppData
> >> C:\Windows\SysWOW64\config\systemprofile\AppData
> >>
> >> depending on your Windows version, policies (if any), and whether the
> >> executable is 32 or 64 bit.
> >>
> >>
> >> I wouldn't try messing with any of these directories. Instead try
> >> setting PGPASSFILE to the full path to your file.
> >>
> >>
> >I have tried all of them, pgagent is not recognizing any of the above
> >locations. In fact, I have tried both options
> >
> > #1. By defining PGPASSFILE to the above locations one after the other.
> > #2. By copying pgpass.conf to all the three locations by creating
> >Roaming/postgresql directories.
> >
> >And also I have defined PGPASSFILE=C:\pgpass.conf; I think, this should be
> >accessible to any system account. This also not working.
>
>
> One more stupid question and then I'm out of ideas ...
>
>
> Have you rebooted after changing the environment variable?
>
> Global environment changes normally don't take effect until the user
> logs out/in again. LocalSystem is not an interactive user - you
> have
> to restart the system to let it see environment changes. PITA.
>
>
> Yes, I did. But no luck..I guess, we have to live with this problem
> for pgagent running as a Local System account.
> We need to run pgagent service as "Logon user account" and provide
> user logon credentials for running pgagent service.
>
> In Linux case, pgagent is not even reading .pgpass itself. The issue
> here is that the logs (debug level log) are no help. It don't have
> much information.
> Which password file it is trying to read.
>
>
>
>
> George
>
>
>
>
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2018-06-05 01:22:02 | Re: Microsoft buys GitHub, is this a threat to open-source |
Previous Message | Joshua D. Drake | 2018-06-05 00:36:18 | Re: Code of Conduct plan |