将数据库引擎配置为侦听多个 TCP 端口
适用于: SQL Server
本主题说明如何使用 SQL Server 配置管理器在 数据库引擎 中将 SQL Server 配置为侦听多个 TCP 端口。 为 SQL Server启用 TCP/IP 后, 数据库引擎 将侦听连接点上是否有传入的连接(由 IP 地址和 TCP 端口号组成)。下列过程将创建一个表格格式数据流 (TDS) 端点,以便 SQL Server 侦听其他 TCP 端口。
创建第二个 TDS 端点的可能原因包括:
通过将防火墙配置为限制访问特定子网上的本地客户机的默认端点,提高安全性。 通过创建防火墙对 Internet 公开的新端点并限制服务器支持组对此端点的连接权限,维护支持组对 SQL Server 的 Internet 访问。
使用非一致内存访问 (NUMA) 时,将连接与特定处理器关联。
配置 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
创建新的 Transact-SQL 端点时,将撤消默认 TDS 端点的 public 连接权限。 如果默认端点需要访问 public 组,请使用 GRANT CONNECT ON ENDPOINT::[TSQL Default TCP] to [public];
语句重新应用此权限。
授予对端点的访问权限
发出以下语句,对 corp 域中的 SQLSupport 组授予对 CustomConnection 端点的访问权限。
GRANT CONNECT ON ENDPOINT::[CustomConnection] to [corp\SQLSupport] ; GO
将 SQL Server 数据库引擎配置为侦听其他 TCP 端口
在 SQL Server 配置管理器中,展开“SQL Server 网络配置”,然后单击 <instance_name> 的“协议”。
展开 <instance_name> 的“协议”,然后单击“TCP/IP”。
在右窗格中,右键单击要启用的每个禁用的 IP 地址,再单击“启用”。
右键单击“IPAll”,再单击“属性”。
在 “TCP 端口” 框中,键入要 数据库引擎 侦听的端口(用逗号分隔)。 在本示例中,如果列出了默认端口 1433,则键入 ,1500 ,随后框中将显示 1433,1500,然后单击“确定” 。
注意
如果不想对所有 IP 地址启用端口,则在属性框中只为所需地址配置其他端口。 然后,在控制台窗格中,右键单击“TCP/IP”,单击“属性”,然后在“全部侦听”框中选择“否”。
在左窗格中,单击 “SQL Server 服务” 。
在右侧窗格中,右键单击“SQL Server <instance_name>”,然后单击“重启”。
数据库引擎重新启动后,错误日志将列出 SQL Server 要侦听的端口。
连接到新端点
发出以下语句,以使用可信连接并假定用户为 [corp\SQLSupport] 组的成员,连接到名为 ACCT 的服务器上的 SQL Server 默认实例的 CustomConnection 端点。
sqlcmd -SACCT,1500
另请参阅
CREATE ENDPOINT (Transact-SQL)
DROP ENDPOINT (Transact-SQL)
GRANT 端点权限 (Transact-SQL)
将 TCP IP 端口映射到 NUMA 节点 (SQL Server)