PostgreSQL - 密码更改后的到期日期值

PostgreSQL - Expiry date value AFTER password is changed

我们公司制定了定期更改密码的政策,这可以使用 UNIX O/S 命令轻松完成。他们有套路,对长度、最小位数等有严格要求,还有有效期提示修改密码,改密码时设置新的有效期。

我们正在使用 PostgreSQL 10 数据库,并且也想为其中的 ODBC 用户帐户设置到期日期。我知道有 ALTER USER {username} VALID UNTIL {date} 选项。我担心的一个问题是,如果用户(或任何人)发出 \password 命令,我们设置的到期日期会发生什么变化。我似乎找不到任何地方提到的。

示例:3月4日,我设置用户“odbcuser”,设置密码有效期至7月4日。7月1日,用户发出\password odbcuser,设置新密码。 VALID UNTIL 是否仍设置为 7 月 4 日,或者该值是否重置为 NULL 或无穷大?还是三天后就过期了,刚刚改了密码?

足够容易测试:

create role pwd_valid with password '1234' valid until '08/09/2020';

rolname      rolvaliduntil
-------      -------------
pwd_valid    08/09/2020 00:00:00 PDT

alter role pwd_valid with password 'testpass';

rolname      rolvaliduntil
-------      -------------
pwd_valid    08/09/2020 00:00:00 PDT

所以到期日期保持不变。

谢谢阿德里安,

有趣的是你提到了这一点。在发布我的问题后,我做了那个测试并确认我使用的 PostgreSQL 10 没有改变 valuntil 列。但我想我会留下这个问题,以防有人对这个主题有一些额外的了解。好像 PG12 或其他我没有发现的变化。

我猜 pg_ 系统表之一也没有设置说明上次更改密码是什么时候?

因为即使设置了有效期,我也不知道是否有人更改了密码。我必须制定一个密码程序来更改密码并将有效期重置为现在 + 180 天。