用于 ADO.NET 4.5 的非 1433 端口

适用于:Azure SQL 数据库

本主题介绍使用 ADO.NET 4.5 或更高版本的客户端的 Azure SQL 数据库连接行为。

重要

有关连接体系结构的信息,请参阅 Azure SQL 数据库连接体系结构

外部与内部

对于 Azure SQL 数据库的连接,首先必须询问客户端程序是在 Azure 云边界外部还是内部运行。 以下小节讨论了两种常见方案。

外部: 客户端在台式机上运行

端口 1433 是托管 SQL 数据库客户端应用程序的台式计算机上唯一必须打开的端口。

内部: 客户端在 Azure 上运行

如果客户端在 Azure 云边界内部运行,则它使用我们所谓的直接路由来与 SQL 数据库交互。 建立连接后,客户端与数据库之间的进一步交互不涉及到任何 Azure SQL 数据库网关。

顺序如下:

  1. ADO.NET 4.5(或更高版本)发起与 Azure 云的简短交互,并接收动态识别的端口号。

    • 动态识别的端口号范围为 11000-11999。
  2. 然后,ADO.NET 不通过任何中间件直接连接到 SQL 数据库。

  3. 查询直接发送到数据库,结果直接返回到客户端。

确保 Azure 客户端计算机上 11000-11999 的端口范围已保留,供 ADO.NET 4.5 客户端与 SQL 数据库的交互使用。

  • 具体而言,范围中的端口必须没有其他任何出站阻塞器。

  • 在 Azure VM 上, 高级安全 Windows 防火墙 控制端口设置。

    • 可以使用防火墙的用户界面为指定 TCP 协议以及语法类似于 11000-11999 的端口范围添加规则。

版本澄清

本部分澄清引用产品版本的 Moniker。 此外还列出了产品之间的版本配对。

ADO.NET

  • ADO.NET 4.0 支持 TDS 7.3 协议,但不支持 7.4。
  • ADO.NET 4.5 和更高版本支持 TDS 7.4 协议。

ODBC

  • Microsoft SQL Server ODBC 11 或更高版本

JDBC

  • Microsoft SQL Server JDBC 4.2 或更高版本(JDBC 4.0 实际上支持 TDS 7.4,但未实现“重定向”)