用于 ADO.NET 4.5 和 SQL 数据库 V12 的非 1433 端口

本主题介绍 Azure SQL 数据库 V12 对于使用 ADO.NET 4.5 或更高版本的客户端连接行为所带来的变化。

SQL 数据库 V11:端口 1433

当客户端程序使用 ADO.NET 4.5 来连接并查询 SQL 数据库 V11 时,内部顺序如下:

  1. ADO.NET 尝试连接到 SQL 数据库。

  2. ADO.NET 使用端口 1433 来调用中间件模块,中间件将连接到 SQL 数据库。

  3. SQL 数据库将其响应发回给中间件,中间件将响应转发给 ADO.NET 端口 1433。

术语:我们使用代理路由描述 ADO.NET 与 SQL 数据库交互的上述顺序。如果没有涉及到中间件,使用的是直接路由

SQL 数据库 V12:外部与内部

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

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

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

内部:客户端在 Azure 上运行

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

顺序如下:

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

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

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

请确保 Azure 客户端计算机上 11000-11999 和 14000-14999 的端口范围已保留给 ADO.NET 4.5 客户端与 SQL 数据库 V12 之间的交互。

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

  • 在 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 协议。

SQL 数据库 V11 和 V12

本主题重点说明 SQL 数据库 V11 和 V12 之间的客户端连接差异。

注意:Transact-SQL 语句 SELECT @@version; 返回一个以数字(例如“11”或“12”)开头的值,这些值与 SQL 数据库 V11 和 V12 的版本名称相匹配。

相关链接