登录失败次数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次,锁定账号的整个要领,希望能够帮助到你!