none
如何设置Windows防火墙允许用户通过TCP/IP协议访问SQL Server服务? RRS feed

  • 常规讨论

  • 在运行SQL Server的服务器上,我们首先要找到当前SQL Server监听的TCP端口,并把该端口加到Windows防火墙允许访问的端口列表里面,因此用户可以通过该 端口访问SQL Server服务。
    其次,如果用户没有在连接字符串中指定TCP端口并且SQL Server没有监听1433端口,我们需要启动SQL Server Browser服务,并把SQL Server Browser服务监听的UDP 1434端口加到Windows防火墙允许访问的端口列表里面。这是因为:
    1. 如果在连接字符串中指定TCP端口,客户端的连接程序,像SQL Native Client就试图用该端口连接SQL Server服务,因此客户端的连接程序不需要SQL Server Browser服务在服务器端启动。
    2. 如果在连接字符串中没有指定TCP端口,客户端的连接程序将发送一个UDP数据包给服务器端的UDP 1434端口。如果UDP 1434端口没有加入到防火墙的允许访问列表中,从而客户端的连接程序不能从服务器端得到SQL Server的监听端口。所以,客户端的连接程序这时会试图用TCP 1433端口去连接SQL Server服务,但如果SQL Server没有监听TCP 1433端口,这时连接会失败。在这种情况下,我们最好在服务器端把UDP 1434端口加入到Windows防火墙的允许访问列表中。

    参考:
    SQL Server Browser服务
    http://msdn.microsoft.com/zh-cn/library/ms181087.aspx
    如何配置服务器以侦听特定 TCP 端口(SQL Server 配置管理器)
    http://msdn.microsoft.com/zh-cn/library/ms177440.aspx

    适用于:
    Microsoft SQL Server 2005
    Microsoft SQL Server 2008
    Microsoft SQL Server 2008 R2
    2012年1月11日 1:07
    版主

全部回复