如何为数据库引擎访问配置 Windows 防火墙

防火墙系统有助于阻止对计算机资源进行未经授权的访问。若要通过防火墙访问 SQL Server 数据库引擎实例,必须在运行 SQL Server 的计算机上配置防火墙以允许访问。

有关默认 Windows 防火墙设置的详细信息以及影响数据库引擎、Analysis Services、Reporting Services 和 Integration Services 的 TCP 端口的说明,请参阅配置 Windows 防火墙以允许 SQL Server 访问通过 Internet 连接到 SQL Server。有很多可用的防火墙系统。有关特定于您系统的信息,请参阅防火墙文档。

重要说明重要提示

打开防火墙的端口可能会使服务器受到恶意攻击。请确保在打开端口之前了解防火墙系统。有关详细信息,请参阅 安装 SQL Server 的安全注意事项

为允许访问而执行的主要步骤如下:

  1. 将数据库引擎配置为使用特定的 TCP/IP 端口。数据库引擎的默认实例使用端口 1433,但可以更改。数据库引擎所使用的端口在 SQL Server 错误日志中列出。SQL Server Express 实例、SQL Server Compact 3.5 SP2 实例以及数据库引擎的命名实例使用动态端口。若要将这些实例配置为使用特定端口,请参阅如何配置服务器以侦听特定 TCP 端口(SQL Server 配置管理器)

  2. 将防火墙配置为允许授权的用户或计算机访问此端口。

注意注意

使用 SQL Server Browser 服务,用户可以连接到不在侦听端口 1433 的数据库引擎实例,因而无需知道端口号。若要使用 SQL Server Browser,必须打开 UDP 端口 1434。若要提升最安全的环境,请停止 SQL Server Browser 服务,并将客户端配置为使用端口号进行连接。

注意注意

默认情况下,Microsoft Windows XP Service Pack 2 将启用 Windows 防火墙,这会关闭端口 1433,从而防止 Internet 计算机连接到您计算机上的默认 SQL Server 实例。重新打开端口 1433 之后,才可以使用 TCP/IP 连接到默认实例。下列过程中提供了配置 Windows XP 防火墙的基本步骤。有关详细信息,请参阅 Windows 文档。

除了将 SQL Server 配置为侦听固定端口并打开此端口之外,您还可以将 SQL Server 可执行文件 (Sqlservr.exe) 作为已阻止程序的例外列出。如果要继续使用动态端口,则使用此方法。通过这种方式只能访问一个 SQL Server 实例。

Windows Vista 和 Windows Server 2008 以及更高版本

以下过程通过使用具有高级安全 Microsoft 管理控制台 (MMC) 管理单元的 Windows 防火墙来配置该 Windows 防火墙。从 Windows Vista 和 Windows Server 2003 开始提供此管理单元。高级安全 Windows 防火墙仅配置当前配置文件。有关高级安全 Windows 防火墙的详细信息,请参阅配置 Windows 防火墙以允许 SQL Server 访问

打开 Windows 防火墙的端口以进行 TCP 访问

  1. 在**“开始”菜单上,单击“运行”,键入 WF.msc,然后单击“确定”**。

  2. 在**“高级安全 Windows 防火墙”的左窗格中,右键单击“入站规则”,然后在操作窗格中单击“新建规则”**。

  3. 在**“规则类型”对话框中,选择“端口”,然后单击“下一步”**。

  4. 在**“协议和端口”对话框中,选择 TCP。选择“特定本地端口”,然后键入数据库引擎实例的端口号,例如默认实例的端口号 1433。单击“下一步”**。

  5. 在**“操作”对话框中,选择“允许连接”,然后单击“下一步”**。

  6. 在**“配置文件”对话框中,选择在您想要连接到数据库引擎时描述计算机连接环境的任何配置文件,然后单击“下一步”**。

  7. 在**“名称”对话框中,输入此规则的名称和说明,再单击“完成”**。

在使用动态端口时打开对 SQL Server 的访问

  1. 在**“开始”菜单上,单击“运行”,键入 WF.msc,然后单击“确定”**。

  2. 在**“高级安全 Windows 防火墙”的左窗格中,右键单击“入站规则”,然后在操作窗格中单击“新建规则”**。

  3. 在**“规则类型”对话框中,选择“程序”,然后单击“下一步”**。

  4. 在**“程序”对话框中,选择“此程序路径”。单击“浏览”,导航到要通过防火墙访问的 SQL Server 实例,再单击“打开”。默认情况下,SQL Server 位于 C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe。单击“下一步”**。

  5. 在**“操作”对话框中,选择“允许连接”,然后单击“下一步”**。

  6. 在**“配置文件”对话框中,选择在您想要连接到数据库引擎时描述计算机连接环境的任何配置文件,然后单击“下一步”**。

  7. 在**“名称”对话框中,输入此规则的名称和说明,再单击“完成”**。

Windows XP 和 Windows Server 2003

以下过程使用 Windows XP 和 Windows Server 2003 控制面板中的“Windows 防火墙”项对 Windows 防火墙进行配置,该项仅可为当前网络位置配置文件配置防火墙。此外,还可以使用具有高级安全 Microsoft 管理控制台 (MMC) 管理单元的 Windows 防火墙和 netsh 命令行工具来配置该 Windows 防火墙。有关这些工具的详细信息,请参阅配置 Windows 防火墙以允许 SQL Server 访问

打开 Windows 防火墙的端口以进行 TCP 访问

  1. 在**“开始”菜单上,单击“运行”,键入 firewall.cpl,然后单击“确定”**。

  2. 在**“Windows 防火墙”对话框中,单击“异常”选项卡,再单击“添加端口”**。

  3. 在**“添加端口”对话框的“名称”**文本框中,键入 SQL Server<实例名>。

  4. 在**“端口号”**文本框中,键入数据库引擎实例的端口号,例如默认实例的端口号 1433。

  5. 验证是否已选中 TCP,再单击**“确定”**。

  6. 若要打开端口以显示 SQL Server Browser 服务,请单击**“添加端口”,在“名称”文本框中键入 SQL Server Browser,在“端口号”文本框中键入 1434,选择 UDP,再单击“确定”**。

    注意注意

    若要允许通过防火墙进行 Named Pipes 访问,还必须通过防火墙启用文件和打印机共享

  7. 关闭**“Windows 防火墙”对话框和“属性”**对话框。

注意注意

单击“Windows 防火墙”对话框中的“添加程序”以设置其他选项,例如授予访问特定程序的权限和限制访问某些 IP 地址或网络子网。有关详细信息,请参阅 Windows 文档。

通过 Windows 防火墙访问程序

  1. 在**“Windows 防火墙”对话框的“例外”选项卡上,单击“添加程序”**。

  2. 单击**“浏览”,导航到要通过防火墙访问的 SQL Server 实例,再单击“打开”**。默认情况下,SQL Server 位于 C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe。

  3. 若要关闭 Windows 防火墙程序,请单击**“确定”**两次。

有关如何使用 SQL Server Management Studio 配置静态端口、打开防火墙以及连接到数据库引擎的简明教程,请参阅教程:数据库引擎入门