SQL Server Browser  作为 Windows 服务在服务器上运行。SQL Server Browser 侦听对 SQL Server 资源的传入请求,并提供计算机上安装的 SQL Server 实例的相关

信息。SQL Server Browser 可用于执行下列三种操作:

  1.   浏览可用服务器
  2.   连接到正确的服务器实例
  3.   连接到专用管理员连接 (DAC) 端点

  SQL Server Browser 服务 (sqlbrowser) 为数据库引擎的每个实例提供实例名称和版本号。SQL Server Browser 随 SQL Server 2005 一起安装,为该计算机上运行的早期版本的 SQL Server(从 SQL Server 7.0 开始)提供帮助。

  默认情况下,不为 SQL Server Express 启用 SQL Server Browser 服务。SQL Server Browser 可以使用外围应用配置器工具进行初始配置,并使用 SQL Server 配置管理器进行管理。

  背景

  在 SQL Server 2000 之前,一台计算机上只能安装一个 SQL Server 实例。SQL Server 侦听 1433 端口传入的请求,此端口由官方的 Internet 号码分配机构 (IANA) 分配给 SQL Server。只有一个 SQL Server 实例可以使用端口,因此当 SQL Server 2000 引入对 SQL Server 多个实例的支持时,便开发了 SQL Server 解析协议 (SSRP),用于侦听 1434 端口。此侦听器服务用已安装的实例的名称以及实例使用的端口或命名管道来响应客户端请求。为解决 SSRP 系统的限制,SQL Server 2005 提供了 SQL Server Browser 服务来替代 SSRP。

  SQL Server 浏览器工作原理

  启动一个 SQL Server 实例后,如果为 SQL Server 启用了 TCP/IP 或 VIA 协议,服务器将被分配一个 TCP/IP 端口。如果启用了命名管道协议,SQL Server 将侦听特定的命名管道。该特定实例将使用此端口或管道与客户端应用程序交 换数据。在安装过程中,1433 端口和管道 sqlquery 将分配给默认实例,但服务器管理员可以随后使用 SQL Server 配置管理器进行更改。由于只有一个 SQL Server 实例可以使用端口或管道,因此,会将不同的端口号和管道名称分配给命名实例,包括 SQL Server Express。默认情况下,命名实例被配置为使用动态端口,因此在启动 SQL Server 时分配可用的端口。可以为 SQL Server 实例分配特定端口。连接时,客户端可以指定所需端口。但是如果端口是动态分配的,端口号可能会在重新启动 SQL Server 时被更改,因此正确的端口号对于客户端来说是不确定的。

  启动后,SQL Server Browser 将启动并使用 UDP 1434 端口。SQL Server Browser 将读取注册表,识别计算机上的所有 SQL Server 实例,并注明它们使用的端口和命名管道。当一台服务器具有两个或多个网卡时,SQL Server Browser 会为 SQL Server 返回启用的所有端口。SQL Server 2005 和 SQL Server Browser 支持 ipv6 和 ipv4。

  如果 SQL Server 2000 和 SQL Server 2005 客户端请求 SQL Server 资源,客户端网络库将使用 1434 端口向服务器发送一条 UDP 消息。SQL Server Browser 将用请求的实例的 TCP/IP 端口或命名管道做出响应。然后,客户端应用程序中的网络库将使用所需实例的端口或命名管道向服务器发送请求来完成连接。

  使用 SQL Server 浏览器

  当 SQL Server Browser 服务不运行时,如果您提供了正确的端口号或命名管道,仍可以连接到 SQL Server。例如,如果 SQL Server 的默认实例在 1433 端口上运行,则可以使用 TCP/IP 连接到此默认实例。

  无法进行以下连接:

  在未完全指定所有参数(例如 TCP/IP 端口或命名管道)的情况下,组件尝试连接到命名实例。

  生成或传递其他组件随后要用来进行重新连接的服务器或实例信息的组件。

  未提供端口号或管道就连接到命名实例。这包括对命名实例的数据镜像和聚集命名实例。

  到命名实例或默认实例(如果未使用 TCP/IP 1434 端口)的专用管理员连接。

  OLAP 重定向程序服务。

  枚举 SQL Server Management Studio、企业管理器或查询分析器中的服务器。

  如果在客户端服务器方案中使用 SQL Server(例如,应用程序通过网络访问 SQL Server),那么,若要停止或禁用 SQL Server Browser 服务,必须为每个实例分配一个特定端口号,并编写客户端应用程序代码以便始终使用该端口号。此方法存在如下问题:

  必须更新和维护客户端应用程序代码才能确保它连接到正确的端口。

  如果服务器上的其他服务或应用程序可以使用您为每个实例选择的端口,则会导致 SQL Server 实例不可用。

  并行安装 SQL Server 2000

  在 SQL Server 2000 中,通过 SQL Server 服务识别服务器连接端点。在 SQL Server 2005 中,该功能是通过 SQL Server Browser 服务实现的。如果在还运行 SQL Server 2000 或 MSDE 的计算机上安装 SQL Server,则必须将它们升级到 SP3 或更高版本。SP3 之前的版本无法正确共享 1434 端口,并且可能会使 SQL Server 实例不能用于请求客户端应用程序。尽管可以通过更改启动顺序,使 SQL Server Browser 服务在 SQL Server 2000 或 MSDE 之前启动,但建议您将所有较旧版本的 SQL Server 更新为最新的 Service Pack。

  在计算机中装有 SQL Server 2000 实例的情况下,如果 SQL Server Browser 未运行,将启动 SQL Server 2000 侦听器服务。如果 SQL Server Browser 在侦听器服务启动之后启动,将用 5 秒钟来等待 SQL Server 2000 放弃 1434 端口。如果未放弃该端口,SQL Server Browser 将无法启动。对于 SP3 之前的 SQL Server 2000 版本,若要解决此问题,需要停止 SQL Server 2000,启动 SQL Server Browser,然后重新启动 SQL Server 2000。SQL Server 2000 侦听器服务将继续尝试使用 1434 端口进行启动,因此应尽快将 SQL Server 2000 实例升级到 SP3。

  SQL Server 7.0 与 SQL Server Browser 没有冲突。

  通过命令行进行安装、卸载和运行

  默认情况下,SQL Server Browser 程序安装在 C:Program FilesMicrosoft SQL Server90Sharedsqlbrowser.exe 处。如果 SQL Server 2000 已安装在计算机上,但尚未升级到 SP 3,而且 SQL Server 2000 实例也未进行升级,则应在安装 SQL Server 2005 期间停止 SQL Server 2000。如果 SQL Server 2000 正在运行,SQL Server Browser 将无法启动,也无法使用 1434 端口,而安装可能会因缺少连接而失败。

  SQL Server Browser 服务在删除 SQL Server 2005 的最后一个实例后被卸载。SQL Server 2000 的实例将恢复其原始行为。

  可以使用 -c 开关,从命令行启动 SQL Server Browser 来排除故障。

 sqlbrowser.exe -c

  安全性

  帐户权限

  SQL Server Browser 使用 SQL Server 解析协议 (SSRP) 侦听 UDP 端口,并接受未经身份验证的请求。SQL Server Browser 应该在低特权用户的安全上下文中运行,以将受到恶意攻击的几率降到最低。默认情况下,使用本地系统帐户启动 SQL Server Browser。通过使用 Windows 服务程序可以更改登录帐户。SQL Server Browser 的最低用户权限如下:

  拒绝通过网络访问该计算机。

  拒绝本地登录。

  拒绝以批处理作业登录。

  拒绝通过“终端服务”登录。

  以服务身份登录。

  读取和写入与网络通信(端口和管道)相关的 SQL Server 注册表项。

  默认帐户

  安装程序将 SQL Server 浏览器配置为使用安装期间为服务选定的帐户。其他可能的帐户包括:

  所有“域本地”帐户

  本地服务帐户(不可以在 W2K 平台上使用)

  本地系统帐户(不推荐使用,因为其具有不必要的权限)

  隐藏 SQL Server

  隐藏的实例是仅支持共享内存连 接的 SQL Server 实例。对于 SQL Server 2005,HideInstance 注册表项指示 SQL Server Browser 不应对此服务器实例的相关信息做出响应。SQL Server Browser 还支持 SQL Server 2000 隐藏实例的方法,这些实例是通过在服务器网络实用工具中设置 HideServer 选项启用的。有关详细信息,请参阅 SQL Server 2005 联机丛书中的如何隐藏 SQL Server 数据库引擎实例。

  使用防火墙

  若要与服务器上有防火墙保护的 SQL Server Browser 服务进行通信,除了打开 SQL Server 使用的 TCP 端口(如 1433)之外,还要打开 UDP 1434 端口。

总之,如果不使用默认的1433端口,只要另外启用你设置的端口 +1的端口即可,如启用1333端口,则要同时启用1334端口。

转载于:https://www.cnblogs.com/niceboy/archive/2009/02/06/1385526.html

轻松掌握使用 SQL Server 浏览器,解决SQL Server 2005跨网段不能连接问题相关推荐

  1. Firefox火狐浏览器解决有软件正在阻止 Firefox 安全地连接至此网站问题

    Firefox火狐浏览器在有安全规则的内网或者使用抓包工具时,经常会出现有软件正在阻止 Firefox 安全地连接至此网站的问题,如下图 具体的解决办法如下: 1. 先在Firefox地址栏输入&qu ...

  2. mysql2008错误2_解决SQL Server 连接服务器 错误2

    后可看到SQ进入L 2005网络配置,右击右边窗口的MSSQLSERVER的协议. 在VIA上右击,在出现的下拉菜单中将它禁用,如果已经禁用的话,就不用做任何修改 了. 做完这些准备工作后,我们开始启 ...

  3. 彻底解决SQL SERVER 2008无法远程连接的问题

    1.想要彻底解决SQL SERVER 2008无法远程连接的问题必须按照步骤来 一.为 SQL 启用远程连接 1. 单击"开始",依次指向"程序"." ...

  4. cann't connect to db! mysql!,解决SQL Error: Can't connect to MySQL server on错误

    解决SQL Error: Can't connect to MySQL server on错误 文章来源:传奇帮手游 发布时间:2020-12-02 文章性质:原创文章 今天帮主在群里看到有一个兄弟在 ...

  5. 解决SQL Server管理器无法连接远程数据库Error: 1326错误

    解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例 ...

  6. 如何解决 SQL Server 2000 中的连接问题

    时,SQL Server 还将前滚已提交的事务和没有写入硬盘的更改.当恢复过程完成时,SQL Server 将在 SQL Server 错误日志文件中写入下列信息: Recovery Complete ...

  7. 解决SQL Server 2000 错误15023:当前数据库中已存在用户或角色

    错误15023:当前数据库中已存在用户或角色 在把远程服务器上的数据库备份还原到本地机后, 给一个"登录"关联一个"用户"时(用户映射),发生错误:" ...

  8. 成功解决SQL Server软件中出现的18456问题

    成功解决SQL Server软件中出现的18456问题 目录 解决问题 解决思路 解决方法 解决问题 18456问题 解决思路 因密码或用户名错误而使身份验证失败并导致连接尝试被拒,因为协议未启动.

  9. 成功解决SQL Server软件中出现的18470问题

    成功解决SQL Server软件中出现的18470问题 目录 解决问题 解决思路 解决方法 解决问题 18470问题 解决思路 因为账户被禁用 解决方法 18470问题:因为账户被禁用:用Window ...

最新文章

  1. 利用卷积神经网络(VGG19)实现火灾分类(附tensorflow代码及训练集)
  2. python编程100例画图-Python练习实例56 | 画图,学用circle画圆形
  3. 初级前端工程师笔试技巧总结,祝你顺利拿高分
  4. 使用WEUI uploader上传图片
  5. 分区表(Partitioned object)
  6. MATLAB信号处理之离散时间系统的时域分析
  7. C#写的ftp上传类
  8. NPOI SetColumnHidden隐藏列不起作用的原因
  9. nodejs实现redis ORM
  10. 2019一注结构成绩_2019年福建地区计算机考研汇总分析
  11. 小米手环5表盘bin文件解包修改
  12. 关于Vue Element组件el-checkbox与el-select默认选中值的几点注意事项
  13. 深度学习数据增强方法总结
  14. springboot自定义ClassLoader实现同一个jar支持多版本的使用场景【附源码】
  15. 天津专升本机构避雷指南
  16. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛——G.养花【网络流】
  17. Arduino与Proteus仿真实例-NTC热敏电阻驱动仿真
  18. python爬取音乐排行_python爬取网易云音乐热歌榜实例代码
  19. JS实现轮播图点击切换、按钮切换功能
  20. Java培训机构之我见

热门文章

  1. Shell脚本中循环until命令用法笔记
  2. python线性回归分析看相关性_机器学习入门-相关分析之简单线性回归
  3. 网络资产管理系统_固定资产管理系统的三种网络架构方式
  4. mac photoshop_我讨厌Photoshop…
  5. 有了防火墙、IPS、WAF 还需要数据库审计?
  6. 走向无后端的系统开发实践:CRUD自动化与强约定的REST接口
  7. iOS 时间戳的转换
  8. [它山之石] 一件事情,假设你不能说清楚,十有八九你就做不好
  9. Cocos2D中相关问题提问的几个论坛
  10. 01. Node js Hello world