登录失败次数MSSQL:当日登录失败次数超过3次!(mssql 同一天)

当日登录失败次数超过3次!用户在登录时应该遵守行为准则,如登录失败次数超过3次,则系统会锁定账号。例如我们可以使用MSSQL(Microsoft SQL Server)来实现这一功能。

实现这一功能,主要包括以下三个主要步骤:

一、:创建表

要使用MSSQL实现登陆失败次数超过3次锁定账号的功能,首先应该新建一个登陆日志表用于记录每一次用户登陆失败,新建表的语句如下:

CREATE TABLE Login

(

ID INT IDENTITY(1,1) PRIMARY KEY,

UserName CHAR(50) NOT NULL,

ButeTime DateTime,

Status VARCHAR(10)

)

这里的ID为主键,表的主要属性包括:UserName(用户名)、ButeTime(登陆时间),Status(状态),状态可以用来标识用户登陆成功或失败。

二、创建存储过程

然后,创建存储过程来检查用户登录失败次数,存储过程的主要语句如下:

CREATE PROCEDURE pro_FailedLogin

@userName VARCHAR(50)

AS

BEGIN

DECLARE @failed INT

SET @failed = (SELECT Count(*) FROM Login WHERE Status = ‘Failed’ and UserName = @userName and DATEDIFF(day,ButeTime,GETDATE())=0)

IF @failed>3

BEGIN

PRINT ‘Login failed more than 3 times today!’

END

END

这个存储过程中,我们用DATEDIFF函数来检查当天的登录失败次数,查找的记录的状态为”Failed”的记录数大于3次,则输出”Login failed more than 3 times today!“的提示信息。

三、把存储过程添加到登录日志触发器

最后,我们需要在登录日志表中创建LOGIN_TRIGGER触发器,把刚才定义的存储过程pro_FailedLogin添加到触发器中。触发器的主要语句如下:

CREATE TRIGGER LOGIN_TRIGGER

ON LOGIN

AFTER INSERT

AS

BEGIN

DECLARE @userName VARCHAR(50)

SELECT @userName=UserName FROM inserted

EXEC pro_FailedLogin @userName

END

登录日志表每次插入记录,触发器会调用存储过程检查用户登录失败的次数,如果超过三次,则打印提示信息。

以上就是使用MSSQL实现当日登录失败次数超过3次,锁定账号的整个要领,希望能够帮助到你!


数据运维技术 » 登录失败次数MSSQL:当日登录失败次数超过3次!(mssql 同一天)