一、创建用户时,指定密码在180天后过期
创建用户时,可以使用如下语句,自动在当前时间的基础上增加180天,作为这个用户密码的有效时间。等到密码到期后或者临近的时候,可以使用SQL修改用户密码,并且重新定义密码的有效期。(也可以直接指定时间,下面方法是为了不用自己算增加180天的天数)
postgres<16.1>(ConnAs[postgres]:PID[205270] 2024-02-19/12:04:30)=# select $$create user test10 with password 'qwerdfg345' valid until '$$||now()::timestamp(0) + '180 day'||$$';$$;
+----------------------------------------------------------------------------------+
| ?column? |
+----------------------------------------------------------------------------------+
| create user test10 with password 'qwerdfg345' valid until '2024-08-17 12:04:34'; |
+----------------------------------------------------------------------------------+
(1 row)
把生成的SQL粘贴执行。
postgres<16.1>(ConnAs[postgres]:PID[205270] 2024-02-19/12:04:34)=# create user test10 with password 'qwerdfg345' valid until '2024-08-17 12:04:34';
CREATE ROLE
可以通过pg_roles这个视图查看用户的密码有效时间
select * from pg_roles where rolname='test10';
二、修改密码并增加密码有效期
密码到期后或者临近的时候,可以使用SQL修改用户密码,并且重新定义密码的有效期。
select $$ alter user test10 with password '1qaz@WSX345' valid until '$$||now()::timestamp(0) + '180 day'||$$';$$;
使用上述语句可以拼接出重制用户密码有效期的语句,自动获取当前时间并且在此基础上增加180天,也可以直接填写相应的具体时间。