【问题标题】:PostgreSQL - Expiry date value AFTER password is changedPostgreSQL - 更改密码后的到期日期值
【发布时间】:2020-08-09 06:09:17
【问题描述】:

我们公司制定了定期更改密码的政策,这可以通过 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 或无穷大?还是刚改密码后三天后过期?

【问题讨论】:

    标签: postgresql passwords


    【解决方案1】:

    很容易测试:

    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
    
    

    所以有效期保持不变。

    【讨论】:

      【解决方案2】:

      谢谢阿德里安,

      你提到这很有趣。发布我的问题后,我完全进行了该测试并确认我使用的 PostgreSQL 10 没有更改 valuntil 列。但我想我会留下这个问题,以防有人对这个主题有更多的了解。就像PG12或其他我没有发现的变化一样。

      我猜其中一个 pg_ 系统表中也没有设置来说明上次更改密码的时间是什么时候?

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

      【讨论】:

      • 我展示的例子是在 Postgres 12 中运行的,所以没有任何变化。更改密码时系统表不会显示。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多