为了增强安全性,SQL Server Developer Edition、Express Edition 和 Evaluation Edition 的数据库引擎在初始安装时不能从其他计算机对其进行访问。本文介绍如何启用协议,配置端口以及配置 Windows 防火墙,以便从其他计算机进行连接。
启用协议
为了增强安全性,SQL Server Express、Developer 和 Evaluation 仅安装有限的网络连接。可以通过运行同一台计算机的工具建立到数据库引擎的连接,但是不能从其他计算机进行连接。如果计划在安装有数据库引擎的同一台计算机上进行开发工作,则无需启用其他协议。Management Studio 或 Management Studio Express 将使用 Shared Memory 协议连接到数据库引擎。此协议已经启用。
如果计划从其他计算机连接到数据库引擎,则必须启用一个协议,例如 TCP/IP。
如何从其他计算机启用 TCP/IP 连接
-
在“开始”菜单中,依次指向“所有程序”、Microsoft SQL Server 2008 R2、“配置工具”,然后单击“SQL Server 配置管理器”。
注意 :可能有 32 位和 64 位选项可用。
-
在 SQL Server 配置管理器中,展开“SQL Server 网络配置”,然后单击“<InstanceName> 的协议”。
默认实例(未命名实例)列为 MSSQLSERVER。如果安装了命名实例,将列出您提供的名称。除非在安装过程中更改了名称,否则,SQL Server 2008 Express 将安装为 SQLEXPRESS。
-
在协议列表中,右键单击要启用的协议 (TCP/IP),再单击“启用”。
注意 :对网络协议进行更改后,必须重新启动 SQL Server 服务;但此操作是在下一任务中完成的。
为了增强安全性,MicrosoftWindows XP Professional Service Pack 2 (SP2)、Windows Server 2008、Windows Vista 和 Windows 7 均打开了 Windows 防火墙。在您想要从其他计算机连接到此实例时,必须打开防火墙中的通信端口。数据库引擎的默认实例侦听端口 1433;因此,您不需要配置固定端口。不过,包括 SQL Server Express 的命令实例会侦听动态端口。打开防火墙的端口之前,必须首先将数据库引擎配置为侦听特定端口(称为固定端口或静态端口);否则,数据库引擎可能会在每次启动时侦听不同的端口。
注意 :
Internet 号码分配机构负责管理端口号的分配,并在 http://www.iana.org 上列出这些端口号。应分配的端口号的范围是从 49152 到 65535。
配置 SQL Server 以侦听特定端口
-
在 SQL Server 配置管理器中,展开“SQL Server 网络配置”,然后单击要配置的服务器实例。
-
在右窗格中,双击 TCP/IP。
-
在“TCP/IP 属性”对话框中,单击“IP 地址”选项卡。
-
在 IPAll 部分的“TCP 端口”框中,键入可用的端口号。对于本教程,我们将使用 49172。
-
单击“确定”关闭对话框,然后单击表明必须重新启动服务的警告上的“确定”。
-
在左窗格中,单击“SQL Server 服务”。
-
在右窗格中,右键单击 SQL Server 实例,再单击“重新启动”。当数据库引擎重新启动时,它将侦听端口 49172。
防火墙系统有助于阻止对计算机资源进行未经授权的访问。若要在防火墙打开时从其他计算机连接到 SQL Server,必须打开防火墙的端口。
重要提示 :打开防火墙的端口可能会使服务器受到恶意攻击。请确保在打开端口之前了解防火墙系统。
将数据库引擎配置为使用固定端口后,请按照下列说明在 Windows 防火墙中打开该端口。(您不需要为默认实例配置固定端口,因为它已经具有固定 TCP 端口 1433。)
打开 Windows 防火墙的端口以进行 TCP 访问 (Windows 7)
-
在“开始”菜单上,单击“运行”,键入 WF.msc,然后单击“确定”。
-
在“高级安全 Windows 防火墙”的左窗格中,右键单击“入站规则”,然后在操作窗格中单击“新建规则”。
-
在“规则类型”对话框中,选择“端口”,然后单击“下一步”。
-
在“协议和端口”对话框中,选择 TCP。选择“特定本地端口”,然后键入数据库引擎实例的端口号。为默认实例键入 1433。如果要配置命名实例,并在上一个任务中配置了固定端口,则键入 49172。单击“下一步”。
-
在“操作”对话框中,选择“允许连接”,然后单击“下一步”。
-
在“配置文件”对话框中,选择在您想要连接到数据库引擎时描述计算机连接环境的任何配置文件,然后单击“下一步”。
-
在“名称”对话框中,输入此规则的名称和说明,再单击“完成”。
打开 Windows 防火墙的端口 (Windows XP)
-
在“开始”菜单上,单击“控制面板”。
-
在“控制面板”中,单击“网络和 Internet 连接”,再打开“Windows 防火墙”。
-
在“Windows 防火墙”中,单击“例外”选项卡,再单击“添加端口”。
-
在“添加端口”对话框的“名称”框中,键入 SQL Server<instanceName>。
-
在“端口号”框中,键入数据库引擎实例的端口号。为默认实例键入 1433。如果要配置命名实例,并在上一个任务中配置了固定端口,则键入 49172。验证是否已选中 TCP,再单击“确定”。
既然已将数据库引擎配置为侦听固定端口,并且已在防火墙中打开该端口,您就可以从其他计算机连接到 SQL Server 了。
当 SQL Server Browser 服务正在服务器计算机中运行并且防火墙已打开 UDP 端口 1434 时,可以使用计算机名称和实例名称建立连接。为了增强安全性,我们的示例不使用 SQL Server Browser 服务。
从其他计算机连接到数据库引擎
-
在另一台包含 SQL Server 客户端工具的计算机中,使用授权的帐户进行登录以连接到 SQL Server,然后打开 Management Studio。
-
在“连接到服务器”对话框中,验证是否已在“服务器类型”框中选中“数据库引擎”。
-
在“服务器名称”框中,键入 tcp: 指定协议,后跟计算机名称、逗号以及端口号。为了连接到默认实例,端口 1433 为隐式端口并可省略,因此请键入 tcp:<computer_name>。在命名实例的示例中,请键入 tcp:<computer_name>,49172。
-
注意 :如果您在“服务器名称”框中省略了 tcp:,则客户端将按照在客户端配置中指定的顺序尝试启用的所有协议。
-
在“身份验证”框中,确认已选中“Window 身份验证”,然后单击“连接”。