I have several users of our PostgreSQL (12) database who are not superusers. From the docs, it would appear that any "ordinary" user should be able to set their password to something new, via:
ALTER ROLE [user] WITH ENCRYPTED PASSWORD '[new password]' VALID UNTIL '2021-11-30'
However, when a non-superuser tries this, they receive a "permission denied" error.
For context, we would like to have database users update their passwords once every 3 months, for security purposes.