在数据库中新建查询exec sys.sp_readerrorlog 0, 1, 'listening'得到 Server is listening on[127.0.0.1 <ipv4> 1434].而在TCP/IP中的是1433.WEB访问数据库中的Connection conn = DriverManager.getConnectio("jdbc:sqlserver://localhost:1434;databaseName=bbs","sa","sa");1434是哪个端口?

解决方案 »

  1.   

    所谓端口,就是相当于机器与外界接触的窗口。端口其实是软件的窗口,就是说一个软件如果要和外界联系,就必须打开一个端口;1434端口是微软SQL Server未公开的监听端口。你要使用SQL,就必然打开1433和1434端口。
    默认情况下,SQL Server使用1433端口监听,很多人都说SQL Server配置的时候要把这个端口改变,这样别人就不能很容易地知道使用的什么端口了。可惜,通过微软未公开的1434端口的UDP探测可以很容易知道 SQL Server使用的什么TCP/IP端口了。 例如:“2003蠕虫王”利用SQL SERVER 2000的解析端口1434的缓冲区溢出漏洞,对网络进行攻击。
    不过微软还是考虑到了这个问题,毕竟公开而且开放的端口会引起不必要的麻烦。在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例。如果隐藏了 SQL Server 实例,则将禁止对试图枚举网络上现有的 SQL Server 实例的客户端所发出的广播作出响应。这样,别人就不能用1434来探测你的TCP/IP端口了(除非用Port Scan)
    SQL Server 2005不再在1434端口上进行自动侦听了。实际上,是完全不侦听了。你需要打开SQL 浏览器服务,把它作为解决客户端向服务器端发送请求的中间媒介。