在使用 SQLCMD 实用工具连接到SQL Server时收到错误消息:Sqlcmd:错误:Microsoft SQL Native Client:建立到服务器的连接时发生错误。连接到SQL Server 2005时,默认设置SQL Server不允许远程连接这个事实可能会导致失败。
如果没有将SQL Server 2005配置为接受远程连接,则可能会发生此问题。默认情况下,SQL Server 2005 Express Edition和SQL Server 2005 Developer Edition不允许远程连接。若要配置SQL Server 2005以允许远程连接,请完成以下所有步骤:
在您要从远程计算机连接到的 SQL Server 实例上启用远程连接。
打 SQL Server Browser服务。
配置防火墙以允许与SQL Server和SQL Server Browser服务相关的网络通讯。
本文介绍如何完成这些步骤中的每一步。
若要在 SQL Server 2005 实例上启用远程连接并打开SQL Server Browser服务,请使用SQL Server 2005外围应用配置器工具。在安装SQL Server 2005时会安装外围应用配置器工具。
为 SQL Server 2005 Express Edition 或 SQL Server 2005 Developer Edition 启用远程连接
必须为要从远程计算机连接到的每个 SQL Server 2005 实例启用远程连接。为此,请按照下列步骤操作:
单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。
在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“远程连接”和“本地连接和远程连接”,单击适用于您的环境的相应协议,然后单击“应用”。
注意:请在接收到以下消息时单击“确定”:
直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。
在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“服务”和“停止”,等待 MSSQL Server 服务停止,然后单击“启动”以重新启动 MSSQL Server 服务。
启用 SQL Server Browser 服务
如果您是通过使用实例名称来运行 SQL Server 2005 并且在连接字符串中没有使用特定的 TCP/IP 端口号,则必须启用SQL Server Browser服务以允许远程连接。例如,使用 <计算机名>/-/SQLEXPRESS 的默认实例名称安装的 SQL Server 2005 Express。不管您正在运行多少个 SQL Server 2005 实例,只需要启用一次 SQL Server Browser 服务。若要启用 SQL Server Browser 服务,请执行以下步骤。
重要说明:这些步骤可能会增加您的安全风险。这些步骤还可能导致您的计算机或网络更易于受到恶意用户或恶意软件(如病毒)的攻击。我们之所以推荐本文介绍的这一过程,是为了使程序能够按照设计意图运行,或者为了实现特定的程序功能。我们建议在进行这些更改之前,充分考虑在您的特定环境中实施这一过程可能带来的风险。如果您选择实施此过程,请采用任何适当的附加步骤以保护您的系统。我们建议只有确实需要这一过程时才使用它。
单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。
在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
在“服务和连接的外围应用配置器”页上,单击“SQL Server Browser”,在“启动类型”中单击“自动”选项,然后单击“应用”。
注意:在单击“自动”选项后,每次启动 Microsoft Windows 时将自动启动 SQL Server Browser 服务。
单击“启动”,然后单击“确定”。
注意:在计算机上运行SQL Server Browser服务时,计算机显示其上运行的每个SQL Server 例的实例名称和连接信息。如果不启用 SQL Server Browser 服务并且通过分配的 TCP 端口直接连接到 SQL Server 实例,则可以降低此风险。本文不讨论如何通过TCP端口直接到SQL Server实例。
在 Windows 防火墙中创建例外
这些步骤适用于 Windows XP Service Pack 2 (SP2) 和 Windows Server 2003 中包含的 Windows 防火墙版本。如果您使用的是不同的防火墙系统,请参阅相应的防火墙文档以了解更多信息。
如果在运行SQL Server 2005的计算机上运行防火墙,将会阻止访问 SQL Server 2005 的外部连接,除非 SQL Server 2005 和 SQL Server Browser 服务可以通过防火墙进行通信。必须为每个要接受远程连接的 SQL Server 2005 实例创建一个例外,并为 SQL Server Browser 服务创建一个例外。
在安装 SQL Server 2005 的程序文件时,SQL Server 2005 会使用一个实例 ID 作为路径的一部分。若要为每个SQL Server实例创建一个例外,必须确定正确的实例ID。若要获取实例ID,请执行以下步骤:
单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 配置管理器”。
在“SQL Server 配置管理器”中,单击右窗格中的“SQL Server Browser 服务”,右键单击主窗口中的实例名称,然后单击“属性”。
在“SQL Server Browser 属性”页上,单击“高级”选项卡,定位到属性列表中的实例 ID,然后单击“确定”。
若要打开 Windows 防火墙,请单击“开始”,再单击“运行”,键入 firewall.cpl,然后单击“确定”。
在 Windows 防火墙中为 SQL Server 2005 创建例外
若要在Windows防火墙中为SQL Server 2005创建例外,请执行以下步骤:
在Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。
在“添加程序”窗口中,单击“浏览”。
单击 C:/-/Program Files/-/Microsoft SQL Server/-/MSSQL.1/-/MSSQL/-/Binn/-/SQLservr.exe 可执行程序,单击“打开”,然后单击“确定”。
注意:上述路径可能会根据 SQL Server 2005 的安装位置而不同。MSSQL.1 这个占位符代表的是您在前面过程的步骤 3 中获得的实例 ID。
对于每个需要为其创建例外的 SQL Server 2005 实例,重复步骤 1 到步骤 3。
在 Windows 防火墙中为 SQL Server Browser 服务创建例外
若要在Windows防火墙中为SQL Server Browser服务创建例外,请执行以下步骤:
在 Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。
在“添加程序”窗口中,单击“浏览”。
单击 C:/-/Program Files/-/Microsoft SQL Server/-/90/-/Shared/-/SQLbrowser.exe 可执行程序,单击“打开”,然后单击“确定”。
注意:上述路径可能会根据SQL Server 2005的安装位置而不同。