From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | Greg Sabino Mullane <htamfids(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Alexander Farber <alexander(dot)farber(at)gmail(dot)com>, pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: How to debug: password authentication failed for user |
Date: | 2025-02-27 21:07:22 |
Message-ID: | 49036afe-bfc0-48fc-9cef-971397efb426@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 2/27/25 10:57, Greg Sabino Mullane wrote:
> On Thu, Feb 27, 2025 at 1:32 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us
> <mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us>> wrote:
>
> > -c 'ALTER USER timeshift_user PASSWORD '"'"'timeshift_pass'"'"';'
> > I am still trying to work out what that quoting is doing?
>
>
> That's standard for -x output for some versions of bash. FWIW, none of
> the shells I had access to output it quite like that, but who knows what
> shell the OP has. It's basically trying to stop the current ALTER USER
I have to believe it is is related to this sequence:
docker build -f ./Dockerfile --build-arg PGPASSWORD=timeshift_pass
[...]
ARG PGPASSWORD
ENV POSTGRES_PASSWORD=$PGPASSWORD
[...]
ENV PGUSER=timeshift_user
ENV PGPASSWORD=$PGPASSWORD
[...]
RUN chmod +x ./01-create-database.sh ./04-alter-owner.sh
Where /01-create-database.sh has:
echo "Setting password for $PGUSER to $PGPASSWORD"
psql --username=postgres --dbname=postgres -c "ALTER USER $PGUSER
PASSWORD '$PGPASSWORD';"
I just don't know enough about Docker to really understand all the hoops
that are being jumped through in the above.
> statement, add a new single quote (but wrap it in double quotes!), then
> start a new single-quoted string (the actual password). (So single,
> double-single-double, single). Then do it all again at the end. It's
> valid, and it should really be equivalent to PASSWORD 'timeshift_pass'
> so it's hard to see what the problem is.
>
> The fact that a manual ALTER ROLE cleared it up certainly suggests that
> something is going wrong, however, and the SELECT rolpassword output
> definitely means it had some password. A possibility is that somehow the
> user password was already set and this particular statement was not run
> (or run on a different cluster).
>
> Another debug technique might be to have the shell script write the
> ALTER USER command to a temp file, then slurp it in via psql -f. Then
> you can cat that file as part of the script's output
>
> Cheers,
> Greg
>
> --
> Crunchy Data - https://www.crunchydata.com <https://www.crunchydata.com>
> Enterprise Postgres Software Products & Tech Support
>
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Nathan Bossart | 2025-02-28 03:35:51 | Re: Disabling vacuum truncate for autovacuum |
Previous Message | Greg Sabino Mullane | 2025-02-27 18:57:43 | Re: How to debug: password authentication failed for user |