如何将数据库引擎配置为侦听多个 TCP 端口

为 SQL Server 启用 TCP/IP 后,数据库引擎将侦听连接点上是否有传入的连接(由 IP 地址和 TCP 端口号组成)。下列步骤将创建一个表格格式数据流 (TDS) 端点,以便 SQL Server 侦听其他 TCP 端口。

创建第二个 TDS 端点的可能原因包括:

  • 通过将防火墙配置为限制访问特定子网上的本地客户机的默认端点,提高安全性。通过创建防火墙对 Internet 公开的新端点并限制服务器支持组对此端点的连接权限,维护支持组对 SQL Server 的 Internet 访问。

  • 使用非一致内存访问 (NUMA) 时,将连接与特定处理器关联。有关如何配置 NUMA 节点的 TCP/IP 端口的详细信息,请参阅 SQL Server 如何支持 NUMA

注意注意

创建新的 Transact-SQL 端点时,将撤消默认 TDS 端点的 public 连接权限。如果默认端点需要访问 public 组,请使用 GRANT CONNECT ON ENDPOINT::[TSQL Default TCP] to [public] 语句重新应用此权限。

配置 TDS 端点的步骤如下,但可以不按顺序进行:

  • 为 TCP 端口创建 TDS 端点,恢复对默认端点的访问权限(如果适用)。

  • 对所需的服务器主体授予对端点的访问权限。

  • 指定所选 IP 地址的 TCP 端口号。

有关默认 Windows 防火墙设置的详细信息以及有关影响数据库引擎、Analysis Services、Reporting Services 和 Integration Services 的 TCP 端口的说明,请参阅配置 Windows 防火墙以允许 SQL Server 访问

创建 TDS 端点

  • 发出以下语句,为服务器上所有可用的 TCP 地址的端口 1500 创建名为 CustomConnection 的端点。

    USE master
    GO
    CREATE ENDPOINT [CustomConnection]
    STATE = STARTED
    AS TCP
       (LISTENER_PORT = 1500, LISTENER_IP =ALL)
    FOR TSQL() ;
    GO
    

授予对端点的访问权限

  • 发出以下语句,对 corp 域中的 SQLSupport 组授予对 CustomConnection 端点的访问权限。

    GRANT CONNECT ON ENDPOINT::[CustomConnection] to [corp\SQLSupport] ;
    GO
    

将 SQL Server 数据库引擎配置为侦听其他 TCP 端口

  1. 在 SQL Server 配置管理器中,展开**“SQL Server 网络配置”**,然后单击“<实例名>的协议”。

  2. 展开“<实例名>的协议”,然后单击 TCP/IP

  3. 在右窗格中,右键单击要启用的每个禁用的 IP 地址,再单击**“启用”**。

  4. 右键单击 IPAll,再单击**“属性”**。

  5. 在**“TCP 端口”框中,键入要数据库引擎侦听的端口(用逗号分隔)。在我们的示例中,如果列出了默认端口 1433,则键入 ,1500,随后框中将显示 1433,1500,然后单击“确定”**。

    注意注意

    如果不想对所有 IP 地址启用端口,则在属性框中只为所需地址配置其他端口。然后,在控制台窗格中,右键单击 TCP/IP,单击“属性”,然后在“全部侦听”框中选择“否”

  6. 在左窗格中,单击**“SQL Server 服务”**。

  7. 在右窗格中,右键单击“SQL Server<实例名>”,再单击**“重新启动”**。

    数据库引擎重新启动后,错误日志将列出 SQL Server 要侦听的端口。

连接到新端点

  • 发出以下语句,使用可信连接并假定用户为 [corp\SQLSupport] 组的成员连接到名为 ACCT 的服务器上的 SQL Server 默认实例的 CustomConnection 端点。

    sqlcmd -SACCT,1500