2012-11-27 22 views
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小時後更新我的表。postgresql在1小時後更新

+3

鎖定用戶嘗試失敗是一個可怕的想法,因爲它會允許用戶拒絕其他用戶。 – ThiefMaster

回答

4

pgAgent是您所需要的。看看這裏:http://www.pgadmin.org/docs/1.8/pgagent.html

可以創造就業機會,其執行每一小時,每15分鐘等

編輯:

在特定情況下,它會更好地被立即鎖定用戶一些登錄失敗次數後的觸發器。

下一步將是每15分鐘運行一次pgAgent作業。通過這份工作,您可以再次解鎖這個賬戶,這個賬戶會被鎖定超過15分鐘。因此,您可以防止希望鎖定所有用戶的DoS攻擊。

+0

我認爲他需要的是類似cronjob的東西。他試圖做的事情看起來不像是應該在數據庫級別上完成的事情...... – ThiefMaster