如何只让指定的机器连接SQLServer服务器?【快进来帮忙谢谢】

新博飞龙 2008-08-26 06:11:41
我按着这个帖子操作只让指定的机器连接SQLServer

http://topic.csdn.net/u/20070730/10/0360f2f0-b4e4-4968-827a-2c7291051698.html

==========================================
方法2. 要求 sql server 2005 已经升级到 sp2, 写个登录触发器, 从触发器中判断连接进来的客户端是否指定IP地址的, 如果不是 ROLLBACK 就行了

-- 例如, 下面的触发器只允许 192.168.1.1 这台服务器连接
CREATE TRIGGER tr_LoginCheck
ON ALL SERVER
FOR LOGON
AS
IF EVENTDATA().value( '(/EVENT_INSTANCE/ClientHost)[1] ', 'varchar(15) ') <> '192.168.1.1 '
ROLLBACK TRAN
GO


只允许211.144.157.22 可以访问数据库

可是现在通过211.144.157.22 也无法连接到数据库 现在任何地址都连接不上数据库了。 请问我改怎么办?
...全文
171 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dotnba 2008-08-31
  • 打赏
  • 举报
回复
CN_SQL 2008-08-31
  • 打赏
  • 举报
回复
所以楼主当作学习就够了。
CN_SQL 2008-08-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cnbercom 的回复:]
引用 http://topic.csdn.net/u/20070730/10/0360f2f0-b4e4-4968-827a-2c7291051698.html 帖 邹建大哥 的回复:

sql 2005的话, 可以在sql中实现
方法1, 用TCP端点:
将默认的 TCP 端点关闭, 然后自己建立一个TCP端点, 只监控指定端口和指定IP指定的信息, 这样你准备两张网卡, 一张与你的指定机器连接, IP设置为TCP端点监听的IP
别人就无法连接进来了

方法2. 要求 sql server 2005 已经升级到 …
[/Quote]
是可以,应用中不会这么去干的,这个只是一个抛砖引玉。
新博飞龙 2008-08-31
  • 打赏
  • 举报
回复
[Quote=引用 http://topic.csdn.net/u/20070730/10/0360f2f0-b4e4-4968-827a-2c7291051698.html 帖 邹建大哥 的回复:]

sql 2005的话, 可以在sql中实现
方法1, 用TCP端点:
将默认的 TCP 端点关闭, 然后自己建立一个TCP端点, 只监控指定端口和指定IP指定的信息, 这样你准备两张网卡, 一张与你的指定机器连接, IP设置为TCP端点监听的IP
别人就无法连接进来了

方法2. 要求 sql server 2005 已经升级到 sp2, 写个登录触发器, 从触发器中判断连接进来的客户端是否指定IP地址的, 如果不是 ROLLBACK 就行了

-- 例如, 下面的触发器只允许 192.168.1.1 这台服务器连接
CREATE TRIGGER tr_LoginCheck
ON ALL SERVER
FOR LOGON
AS
IF EVENTDATA().value( '(/EVENT_INSTANCE/ClientHost)[1] ', 'varchar(15) ') <> '192.168.1.1 '
ROLLBACK TRAN
GO
[/Quote]
我是按他说的方法,操作的,以为可以,结果还是不行。
CN_SQL 2008-08-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cnbercom 的回复:]
自己都访问不了SQL没辙,只好重新装了,大家有什么好方法,像虚拟主机提供商的sql srv那样只允许固定的域名或ip才能访问到Sql Srv
[/Quote]
不是在数据库层做的配置,这个问题,是要在网络层方面去控制的,只允许某几个IP访问数据库的TCP/IP端口。
新博飞龙 2008-08-31
  • 打赏
  • 举报
回复
自己都访问不了SQL没辙,只好重新装了,大家有什么好方法,像虚拟主机提供商的sql srv那样只允许固定的域名或ip才能访问到Sql Srv
fcuandy 2008-08-27
  • 打赏
  • 举报
回复
CREATE  TRIGGER  tr_LoginCheck 
ON ALL SERVER
FOR LOGON
AS
IF EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1] ', 'varchar(15)') <> '211.144.157.22'
ROLLBACK TRAN
GO
dawugui 2008-08-27
  • 打赏
  • 举报
回复
XXX.XXX.XXX.XXX

15位足够了,不是这个原因.

友情帮顶.
flairsky 2008-08-27
  • 打赏
  • 举报
回复
varchar(15)

改大点,varchar(50)
lussnailatnet 2008-08-26
  • 打赏
  • 举报
回复
帮顶,学习中
新博飞龙 2008-08-26
  • 打赏
  • 举报
回复
EVENT_INSTANCE/ClientHost 这个是什么,是保存 ip地址的吗,请问他储存在哪里。我可以把这个清掉吗,触发器tr_LoginCheck 我现在都无权限删除。现在web【211.144.157.22】服务器根本连接不到sql服务器,急啊~~

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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