PostgreSQL 一小时后进行更新

5
CREATE TABLE em_user
(
  user_id character(10),
  last_attempt integer,
  last_unsuccessfull_login timestamp with time zone,
  is_locked boolean DEFAULT false);

UPDATE em_user
SET is_locked = TRUE
           WHERE last_attempt >3 AND last_unsuccessfull_login=last_unsuccessfull_login+'2 minutes';     

我希望在postgresql中的1小时后更新我的表格。

3
对于未成功尝试的用户进行锁定是个糟糕的想法,因为这将使人们能够对其他用户进行拒绝服务攻击。 - ThiefMaster
1个回答

4

您需要使用pgAgent。在这里查看:http://www.pgadmin.org/docs/1.8/pgagent.html

您可以创建作业,每小时执行一次,每15分钟执行一次等。

编辑:

在您的特定情况下,最好通过触发器在一些登录失败后立即锁定用户。

下一步是每15分钟运行一个pgAgent作业。使用此作业可以再次解锁已锁定超过15分钟的帐户。因此,您可以防止DoS攻击尝试锁定所有用户。


我认为他需要的是类似于cronjob的东西。他试图做的事情看起来根本不应该在数据库层面上完成... - ThiefMaster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接