Answers:
如果您仅运行一个SQL Server实例,并且为非本地连接启用了TCP / IP传输,则它很可能在默认的TCP端口1433上进行侦听。
如果您有多个实例,或者除“单个默认实例”之外还有其他复杂情况,那么事情可能会更加复杂。您将需要为每个实例设置端口(默认情况下,它们是半随机的,通常对防火墙配置没有帮助),并且还需要打开SQL Browser服务(通常会监听UDP端口1434,尽管这样做也可以)重新配置)。
在http://msdn.microsoft.com/zh-cn/library/cc646023.aspx上,有关于SQL Server和防火墙的一组相当详细的说明。
您将需要启动浏览器服务来解析非默认实例。此外,打开UDP 1434将允许按名称而不是端口解析命名实例,因此您无需使用端口。如果您不满意长期打开UDP 1434,或者您有一个DBA在现场并且可以本地连接,则可以要求他们通过SQL Server Mgmt Studio或SQLCMD进行连接,并指定服务器连接,如下所示:
tcp:服务器名称\实例名称
使用tcp前缀将强制进行tcp连接。完成此操作后,您可以连接到命名实例并查询sys.dm_exec_connections来查找非默认实例运行的端口,如下所示:
SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID