Home  >  Article  >  Database  >  解决限制访问SQL Server的IP地址的办法

解决限制访问SQL Server的IP地址的办法

WBOY
WBOYOriginal
2016-06-07 16:17:541939browse

我们只想使某个IP的计算机才能连接到SQLServer服务器,不允许其他客户端连接,怎么操作呢? 解决方法:可以直接在防火墙中做限制,只允许与指定的IP地址建立1433的通讯。当然,从更为安全的角度来考虑,应该把1433端口改成其他的端口。 其他解决方法1(限从

  我们只想使某个IP的计算机才能连接到SQLServer服务器,不允许其他客户端连接,怎么操作呢?

   

    解决方法:可以直接在防火墙中做限制,只允许与指定的IP地址建立1433的通讯。当然,从更为安全的角度来考虑,应该把1433端口改成其他的端口。

   

    其他解决方法1(限从指定IP接入的客户端):如果使用SQLServer2005,还可以通过端点限制的方法来实现,,此方法要求一块专门的网卡,所有可以连接SQLServer的客户端均通过此网卡接入(假设此网卡的IP是192.168.1.1):

   

    1.在“SQL Server配置管理器”的“SQLServer2005网络配置中”,禁止除TCP/IP之外的所有协议;

   

    2.使用如下的T-SQL禁止默认的TCP端点

   

    !--

   

    Code highlighting produced byActiproCodeHighlighter(freeware)

   

    --> ALTER ENDPOINT [TSQL Default TCP]

   

    STATE = STOPPED

   

    3.使用如下的T-SQL建立新的TCP端点和授权

   

    !--

   

    Code highlighting produced byActiproCodeHighlighter(freeware)

   

    --> USE master

   

    GO

   

    -- 建立一个新的端点

   

    !--

   

    Code highlighting produced byActiproCodeHighlighter(freeware)

   

    --> CREATE ENDPOINT [TSQL User TCP]

   

    STATE = STARTED

   

    AS TCP(

   

    LISTENER_PORT = 1433,

   

    LISTENER_IP = (192.168.1.1) -- 侦听的网络地址

   

    )

   

    FOR TSQL()

   

    GO

   

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

   

    !--

   

    Code highlighting produced byActiproCodeHighlighter(freeware)

   

    --> GRANT CONNECT ON ENDPOINT::[TSQL User TCP]

   

    TO [public]

   

    完成上述配置之后,只有通过网络地址配置为192.168.1.1的网卡接入的客户端才能访问SQLServer;另外,如果只授予指定登录对端点的连接权限,则只有指定的登录才能接入SQLServer实例。

   

    其他解决方法2(限指定IP的客户端接入)

   

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

   

    执行下面的T-SQL后,将使除IP地址为192.168.1.1之外的客户端连接失败。

   

    !--

   

    Code highlighting produced byActiproCodeHighlighter(freeware)

   

    --> USE master

   

    GO

   

    CREATE TRIGGER tr_LoginCheck

   

    ON ALL SERVER

   

    FOR LOGON

   

    AS

   

    ROLLBACK TRAN

   

    GO

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn