触发或存储锁定和解锁数据库15分钟

时间:2011-03-23 08:44:59

标签: sql-server-2005

亲爱的先生,亲爱的 我创建了一个登录表单,如果你输错密码3次,那么你的帐户将被锁定15分钟。 我们在15分钟后发送参考的emailid随机密码。 对于这15分钟,帐户isactive ='false'。

那么请你帮我提供15分钟后触发的存储过程或触发器的代码,更新此帐户isactive ='true'。

请帮帮我。

提前致谢

1 个答案:

答案 0 :(得分:0)

你不会使用触发器。 可能可以与服务代理做某事(我不确定)。

最简单的方法是在Users表中放置一个不可为空的LockedOutUntil smalldatetime列(默认为过去的某个日期)并让代码检查

isactive='true' or LockedOutUntil<getdate()

对于所有用户而言,这将消耗每行4个字节,并且可能在任何时候都会锁定很少的字节,因此更节省空间的方法是创建包含锁定详细信息的新表。您的代码需要检查此表以确定用户是否已被锁定,或者您可以预先停用该用户并安排SQL Server代理作业每分钟运行一次,以重新激活其锁定期已过期的用户。除非您想要保留这些事件的历史记录,否则该作业也可以从锁定表中删除它们。