为什么用户在尝试更新 PostgreSQL 中的用户密码时收到 "permission denied" 错误?

Why does a user receive a "permission denied" error when trying to update their user password in PostgreSQL?

我有几个不是超级用户的 PostgreSQL (12) 数据库用户。从 docs 看来,任何“普通”用户都应该能够通过以下方式将他们的密码设置为新密码:

ALTER ROLE [user] WITH ENCRYPTED PASSWORD '[new password]' VALID UNTIL '2021-11-30'

但是,当非超级用户尝试此操作时,他们会收到“权限被拒绝”错误。

出于安全考虑,我们希望数据库用户每 3 个月更新一次密码。

普通用户无法设置 valid until 选项。

如果你仔细想想,这就没有意义了,因为用户可以选择更长的时间段。