USE master
GO
CREATE TRIGGER tr_LoginCheck
ON ALL SERVER
FOR LOGON
AS
IF EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(15)')='192.168.1.251'
ROLLBACK TRAN
GO
USE master GO CREATE TRIGGER tr_LoginCheck ON ALL SERVER FOR LOGON AS IF EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(15)')='192.168.1.251' ROLLBACK TRAN GO 我写了个触发器 禁止某个IP登录 在我自己电脑上试 好使 在服务器上就不好使 一样一样一样的 代码 唯一不同的是 服务器是企业版 我是开发版 求助为什么
把事件写入临时表看看是否正常如:
--这一段改改,创建一个表记录连接日志,查看一下日志对应的IP是否一致(192.168.1.251)
begin
IF EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(15)')='192.168.1.251'
begin
INSERT INTO 表(ClientHost,LoginName) values(EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(15)'),ORIGINAL_LOGIN())
ROLLBACK TRAN
end
end