日期:2014-05-17  浏览次数:20552 次

求一sql语句,急(解决后立马给分)
表如下图:


现在为了防暴力破解,我要查出用户的IP在登录10次失败后要禁止该用户的IP10分钟!

现求一查询用户连续登录失败10次的的sql语句

也欢迎大家给更好的方案,谢谢!

------解决方案--------------------
把登录错误信息存到临时表,10次就禁止...成功就删除临时表..
------解决方案--------------------
@starttime和@endtime是限制,在几分/秒钟内登陆次数超过10次才算是暴力破解

select uid,loginip  from 表 where isnull(loginsta,0)=0 and logdate bewteen @starttime and @endtime group by uid,loginip having count(1)>=10


------解决方案--------------------
登录的时候,把对应的用户账号的错误次数插入数据表累加起来,并把时间也记录起来。如果用户登录成功,把用户错误的次数字段值再update为0。
只要错误次数“连续”达到10次,再把错误的时间拿出来与当前时间计算,剩下的工作,就好办了吧。
楼主参考。
------解决方案--------------------
楼主,先把逻辑想通了。再动手做。这种用基本SQL就可以了。
------解决方案--------------------
你这个logindate应该拿来记录上次登陆时间,
在下次登陆的时候判断和上次登陆时间小于1分钟的就增加次数,
如果这个时间段比较长的就把次数归0,重头开始记算,
不知道楼主有没明白我的意思?
------解决方案--------------------
那这个++的字段放到那里去呢?临时表如何查看呢;