Re: Fwd: dblink_connect fails - Mailing list pgsql-general

From Joe Conway
Subject Re: Fwd: dblink_connect fails
Date
Msg-id 567226AD.4060002@joeconway.com
Whole thread Raw
In response to Fwd: dblink_connect fails  (James Sewell <james.sewell@lisasoft.com>)
List pgsql-general
On 12/16/2015 06:10 PM, James Sewell wrote:
> Oops left off the list.

Me too -- response repeated below...

> ---------- Forwarded message ----------
> From: *James Sewell* <james.sewell@lisasoft.com
> <mailto:james.sewell@lisasoft.com>>
> Date: Thursday, 17 December 2015
> Subject: dblink_connect fails
> To: Joe Conway <mail@joeconway.com <mailto:mail@joeconway.com>>
>
>
> On Thu, Dec 17, 2015 at 12:11 PM, Joe Conway <mail@joeconway.com
> <javascript:_e(%7B%7D,'cvml','mail@joeconway.com');>> wrote:
>
>     On 12/16/2015 04:53 PM, James Sewell wrote:
>     > No it is not.
>     >
>     > Just in case I tried setting it to 'postgres', logged in without -U
>     > (doesn't work without PGUSER set) and tried the operation again.
>
>     >     >     DETAIL:  FATAL:  role "PRDSWIDEGRID01$" does not exist

> This is a new database with some tables and dblink loaded.
>
> The  PRDSWIDEGRID01 is actually the hostname - but I just can't see how
> it's getting injected.
>
> My understanding was that psql -U should override? And also that any
> user variable just sets the user PostgreSQL variable - which is postgres.

Hmmm, well the way you start up psql should be irrelevant here.

What goes on with dblink_connect() is more-or-less completely controlled
by libpq's PQconnectdb(). When you do not provide a user explicitly in
your libpq connect string it defaults to the user that the current
process is running under unless the PGUSER environment variable has been
defined. See:

http://www.postgresql.org/docs/9.4/interactive/libpq-envars.html

    "The following environment variables can be used to select default
     connection parameter values, which will be used by PQconnectdb,
     PQsetdbLogin and PQsetdb if no value is directly specified by the
     calling code.

     PGUSER behaves the same as the user connection parameter."

-and-

http://www.postgresql.org/docs/9.4/interactive/libpq-connect.html#LIBPQ-PARAMKEYWORDS

    "user

        PostgreSQL user name to connect as. Defaults to be the same as
        the operating system name of the user running the application."

So in your case, does your postgres server run as an OS user called
PRDSWIDEGRID01$ for some reason?

Joe



--
Crunchy Data - http://crunchydata.com
PostgreSQL Support for Secure Enterprises
Consulting, Training, & Open Source Development


Attachment

pgsql-general by date:

Previous
From: Karl Czajkowski
Date:
Subject: Re: Check old and new tuple in row-level policy?
Next
From: Stephen Frost
Date:
Subject: Re: Check old and new tuple in row-level policy?