Search Postgresql Archives

Re: How to debug: password authentication failed for user

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2/27/25 10:57, Greg Sabino Mullane wrote:
On Thu, Feb 27, 2025 at 1:32 PM Tom Lane <tgl@xxxxxxxxxxxxx <mailto:tgl@xxxxxxxxxxxxx>> 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.klaver@xxxxxxxxxxx






[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux