使用触发器限制数据库连接IP
如:
USE master GO
if exists (select * from sysobjects where name = 'tr_LoginCheck' and type='TR')
drop trigger dbo.tr_LoginCheck
GO
CREATE TRIGGER tr_LoginCheck ON ALL SERVER
FOR LOGON AS IF EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(15)') <> '192.168.1.27'
ROLLBACK TRAN
GO
结果只有 192.168.1.27能够登陆SQL
本地都无法登陆 研究半天找到解决方案:
使用DAC登陆执行删除触发器语句
1、进入DOS 执行 sqlcmd -A -S localhost //服务器名 当前示例是本机
2、执行删除触发器语句 DROP TRIGGER tr_LoginCheck ON ALL SERVER
3、输入GO
4、 OK (有可能结果提示执行失败,但是实际已经删除触发器了 可以试试)
本文介绍如何通过创建触发器限制特定IP地址对SQL Server的登录,仅允许192.168.1.27访问。同时提供了解除此限制的方法,即使用DAC登录并执行删除触发器的语句。
511

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



