Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Postgres每60天使用户密码无效的规则_Postgresql_Passwords_Rules - Fatal编程技术网

Postgresql Postgres每60天使用户密码无效的规则

Postgresql Postgres每60天使用户密码无效的规则,postgresql,passwords,rules,Postgresql,Passwords,Rules,在我的postgres数据库中,每60天就有一次用户密码失效的问题: CREATE RULE user\u用户更新时过期 取而代之 更新用户 设置用户过期时间=用户过期时间+'60' 这将在用户每次更改密码时起作用,但在每次对记录进行更新时也会起作用。如何确保它只在更改密码事件时更新?触发器是更好的解决方案。从9.0版开始,它有per,触发器,只有在某个列被更改时才会触发。在旧版本中,您必须在函数内部进行检查,比较OLD.password和NEW.password,然后再决定更新user\u e

在我的postgres数据库中,每60天就有一次用户密码失效的问题:

CREATE RULE user\u用户更新时过期
取而代之
更新用户
设置用户过期时间=用户过期时间+'60'


这将在用户每次更改密码时起作用,但在每次对记录进行更新时也会起作用。如何确保它只在更改密码事件时更新?

触发器是更好的解决方案。从9.0版开始,它有per,触发器,只有在某个列被更改时才会触发。在旧版本中,您必须在函数内部进行检查,比较OLD.password和NEW.password,然后再决定更新user\u expires列。

我想我还应该问一下如何强制更改密码?如果要强制执行新密码,如果OLD.password=NEW.password,则在触发器函数中引发异常。