use yyyyy
go
--DROP trigger [tr_LoginCheck] on all server
--go
CREATE TRIGGER [tr_LoginCheck]
ON all server
FOR LOGON
AS
declare @IP varchar(15);
set @ip=EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(15)');
if(@ip not in ('<local machine>','127.0.0.1','192.168.0.20','192.168.10.1','192.168.10.3','192.168.10.10'))
begin
if(datepart(mi,getdate())%2=0)
begin
ROLLBACK TRAN
end
end
GO
go
--DROP trigger [tr_LoginCheck] on all server
--go
CREATE TRIGGER [tr_LoginCheck]
ON all server
FOR LOGON
AS
declare @IP varchar(15);
set @ip=EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(15)');
if(@ip not in ('<local machine>','127.0.0.1','192.168.0.20','192.168.10.1','192.168.10.3','192.168.10.10'))
begin
if(datepart(mi,getdate())%2=0)
begin
ROLLBACK TRAN
end
end
GO
本文介绍了一个SQL Server登录触发器的实现方案,该触发器用于检查登录用户的IP地址是否在预设的安全列表中。如果登录尝试来自未授权的IP,并且当前时间分钟数为偶数,则触发器将回滚事务。
1043

被折叠的 条评论
为什么被折叠?



