鉴于我有select,是否有理由更喜欢启用SQL浏览器服务使用默认静态端口,反之亦然?
以下是具体的上下文:
我们几乎没有第三方应用程序,只有几个客户端连接到2005 SQLExpress实例。 这个实例被configuration为接受远程连接,但是我们一直有间歇性的连接问题,显示为“密码不匹配”login失败,即
Login failed for user 'AppSQLLogin'. [CLIENT: 10.xxx] Error: 18456, Severity: 14, State: 8.)
我最终发现它使用的是dynamic端口,而启动SQL Browser Service显然已经解决了login问题。
但是因为我没有在该服务器上运行多个实例,所以在我看来,我可以将指定的SQLExpresss实例设置为使用正常的默认端口1433并停止浏览器服务。 假设是这样的话,有没有什么理由我应该或不应该这样做? 换句话说,除非我明确必须,否则不应该运行SQL浏览器服务? (在我们的其他单个默认实例SQL服务器上没有启用它)。
使用静态端口和禁用浏览器提供0安全性。 有人闯入服务器,他们可以通过查看应用程序日志或通过端口扫描服务器来查询系统,以获取正在使用的端口列表,这些服务器全部需要10-15秒。
只要打开浏览器,并完成它。
你不想使用1433端口,因为如果你安装一个默认的实例,它会想在1433端口上运行。
我会说,只要你可以closures浏览器,并configuration你的实例在静态端口上运行。 但我build议使用其他端口比1433(可能在更高端)。 查阅这篇关于使用SQL Server浏览器服务的最佳实践的文章。
编辑:
“ Microsoft SQL Server 2005安全最佳实践 – 操作和pipe理任务”白皮书明确指出:“对于更安全的configuration,始终使用静态TCP / IP端口分配并禁用SQL Server Browser服务。