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 時間後にテーブルを更新したいと考えています。

4

1 に答える 1

4

pgAgent が必要です。こちらをご覧ください: http://www.pgadmin.org/docs/1.8/pgagent.html

1 時間ごと、15 分ごとなどに実行するジョブを作成できます。

編集:

あなたの特定のケースでは、いくつかのログイン失敗の後、トリガーによってすぐにユーザーをロックすることをお勧めします。

次のステップは、pgAgent ジョブを 15 分ごとに実行することです。このジョブを使用すると、15 分以上ロックされているこのアカウントを再びロック解除できます。そのため、すべてのユーザーをロックしようとする DoS 攻撃を防ぐことができます。

于 2012-11-27T07:41:36.803 に答える