密码尝试失败 - 我如何在SQL中编写代码

时间:2012-02-07 11:56:07

标签: sql-server sql-server-2005 tsql login passwords

问题没有正确框架我知道,如何在T-SQL(SQL Server 2005)中编写以下逻辑来增加用户注册系统的失败次数。

SELECT  CASE WHEN (FailedPasswordWindowStart < GETDATE() >= 
dateadd(minute,20,FailedPasswordWindowStart)) THEN 'Increase' ELSE 'Same' END FROM users

简单地说,当前时间在最后一次尝试中并且从上次尝试开始时间窗口然后增加失败次数。

1 个答案:

答案 0 :(得分:1)

这是一种更简单的方法。将变量替换为您可能已创建的存储过程的参数。

SELECT 
CASE WHEN ABS((DATEDIFF(MINUTE,@LastAttempt,GETDATE())) <= @TimeWindow
THEN 'Increase' 
ELSE 'Same' END

@Window - 尝试进行尝试的时间窗口应增加计数

@LastAttempt - 上次失败尝试(日期和时间)

修改

添加了ABS,因为获得的值也可能是负数:)