服务器

位置:IT落伍者 >> 服务器 >> 浏览文章

仅允许指定的机器连接SQL Server服务器


发布日期:2023年08月23日
 
仅允许指定的机器连接SQL Server服务器

问题希望仅仅允许某个指定IP的计算机连接到SQL Server服务器但不允许其他的客户端进行连接

解决方法如下

你可以直接在防火墙中做限制只允许与指定的IP地址建立的通讯(注从安全的角度来考虑应该把端口改成其他的端口)

其他的解决方法

限从指定IP接入的客户端:

如果使用SQL Server 还可以通过端点限制的方法来实现此方法要求一块专门的网卡所有可以连接SQL Server的客户端均通过此网卡接入(假设此网卡的IP是)

SQL Server 配置管理器SQL Server 网络配置中禁止除TCP/IP之外的所有协议;

使用如下的TSQL禁止默认的TCP端点

ALTER ENDPOINT [TSQL Default TCP]

STATE = STOPPED

使用如下的TSQL建立新的TCP端点和授权

USE master

GO

建立一个新的端点

CREATE ENDPOINT [TSQL User TCP]

STATE = STARTED

AS TCP(

LISTENER_PORT =

LISTENER_IP = () 侦听的网络地址

)

FOR TSQL()

GO

授予所有登录(或者指定登录)使用此端点的连接权限

GRANT CONNECT ON ENDPOINT::[TSQL User TCP]

TO [public]

完成以上的配置之后只有通过网络地址配置为的网卡接入的客户端才能访问SQL Server;此外假如只授予指定登录对端点的连接权限则只有指定的登录才能接入SQL Server实例

限指定IP的客户端接入

当SQL Server 升级到SP或者更高的版本的时候你还可以通过新增的触发器来实现控制

执行一下的TSQL后IP地址为以外的客户端连接将会出现失败的现象

USE master

GO

CREATE TRIGGER tr_LoginCheck

ON ALL SERVER

FOR LOGON

AS

IF EVENTDATA()value((/EVENT_INSTANCE/ClientHost)[] varchar()) <>

ROLLBACK TRAN

GO

               

上一篇:浅谈如何优化SQL Server服务器

下一篇:如何使用Delphi设计强大的服务器程序