又蒙圈了 求大神解释

走你_ 2017-07-22 10:30:39
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登录
在我自己电脑上试 好使 在服务器上就不好使
一样一样一样的 代码
唯一不同的是 服务器是企业版 我是开发版

求助为什么呢
...全文
175 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2017-07-22
  • 打赏
  • 举报
回复
服务器和这个限制ip地址都是在局域网内吗?如果服务器是外网的,这个ip地址是局域网的,在访问的时候ip地址就改变了
OwenZeng_DBA 2017-07-22
  • 打赏
  • 举报
回复
引用 楼主 beyond789654 的回复:
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是什么把
中国风 2017-07-22
  • 打赏
  • 举报
回复
把事件写入临时表看看是否正常如: --这一段改改,创建一个表记录连接日志,查看一下日志对应的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
走你_ 2017-07-22
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
服务器和这个限制ip地址都是在局域网内吗?如果服务器是外网的,这个ip地址是局域网的,在访问的时候ip地址就改变了
当然都是局域网

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧