适用于: Azure Database for MySQL - 灵活服务器

本文介绍了如何控制与 Azure MySQL 灵活服务器连接的概念。 详细介绍 Azure Database for MySQL - 灵活服务器的网络概念,以便在 Azure 中安全地创建和访问服务器。

Azure Database for MySQL 灵活服务器支持通过以下三种方式配置与服务器的连接:

  • 公共访问 :可通过公共终结点访问灵活服务器。 公共终结点是可公开解析的 DNS 地址。 “允许的 IP 地址”一词是指你选择向其授予访问服务器的权限的一系列 IP。 这些权限称为“防火墙规则”。

  • 专用终结点 :可以使用专用终结点,以允许 虚拟网络 (VNet) 上的主机通过 专用链接 安全地访问数据。

  • 专用访问(VNet 集成) :可以将灵活服务器部署到 Azure 虚拟网络 中。 Azure 虚拟网络提供专用的安全网络通信。 虚拟网络中的各个资源可通过专用 IP 地址进行通信。

    部署支持公共访问或专用访问(通过 VNet 集成)的服务器后,将无法再修改连接模式。 但在公共访问模式下,可以根据需要启用或禁用专用终结点,也可以根据需要禁用公共访问。

    选择网络选项

    如需以下功能,请选择“公共访问(允许的 IP 地址)和专用终结点”方法:

  • 在没有虚拟网络支持的情况下从 Azure 资源进行连接
  • 从未通过 VPN 或 ExpressRoute 连接的 Azure 外部资源进行连接
  • 灵活服务器可通过公共终结点进行访问,并且可以通过授权的 Internet 资源进行访问。 如果需要,可以禁用公共访问。
  • 能够将专用终结点配置为从虚拟网络 (VNet) 上的主机访问服务器
  • 如需以下功能,请选择“专用访问(VNet 集成)”:

  • 从同一虚拟网络或 对等互连虚拟网络 中的 Azure 资源连接到灵活服务器,而无需配置专用终结点
  • 使用 VPN 或 ExpressRoute 从非 Azure 资源连接到灵活服务器
  • 无公共终结点
  • 无论你是选择使用专用访问还是公共访问选项,以下特征都适用:

  • 来自允许的 IP 地址的连接需要使用有效的凭据向 MySQL 灵活服务器进行身份验证
  • 连接加密 可用于你的网络流量
  • 服务器具有完全限定的域名 (FQDN)。 对于连接字符串中的 hostname 属性,建议使用 FQDN 而不是 IP 地址。
  • 这两个选项都是在服务器级别控制访问,而不是在数据库或表级别进行控制。 你将使用 MySQL 的角色属性来控制数据库、表和其他对象访问。
  • 不受支持的虚拟网络场景

  • 公共终结点(或公共 IP 或 DNS)- 部署到虚拟网络的灵活服务器不能有公共终结点。
  • 将灵活服务器部署到虚拟网络和子网后,不能将它移动到其他虚拟网络或子网。
  • 部署灵活服务器后,无法将灵活服务器使用的虚拟网络移到另一个资源组或订阅中。
  • 一旦子网中存在资源,子网大小(地址空间)便不能增加。
  • 创建服务器后,禁止从公共访问更改为专用访问。 建议使用时间点还原。
  • 如果使用自定义 DNS 服务器,则必须使用 DNS 转发器解析 MySQL 灵活服务器的 FQDN。 有关详细信息,请参阅 使用 DNS 服务器的名称解析

    无论网络选项如何,我们都建议你在连接到灵活服务器时使用连接字符串中的完全限定的域名 (FQDN)“.mysql.database.azure.com”。 服务器的 IP 地址不能保证保持静态。 使用 FQDN 有助于避免更改连接字符串。

    使用 FQDN 为主机名的示例如下:主机名 = servername.mysql.database.azure.com。 尽可能避免使用主机名 = 10.0.0.4 (专用地址) 或主机名 = 40.2.45.67 (公共地址) 。

    TLS 和 SSL

    Azure Database for MySQL 灵活服务器支持使用安全套接字层 (SSL) 和传输层安全性 (TLS) 加密将客户端应用程序连接到 MySQL 灵活服务器。 TLS 是一种行业标准协议,可确保在数据库服务器与客户端应用程序之间实现加密的网络连接,使你能够满足合规性要求。

    默认情况下,Azure Database for MySQL - 灵活服务器支持使用传输层安全性 (TLS 1.2) 的加密连接,并且拒绝所有使用 TLS 1.0 和 TLS 1.1 的传入连接。 可以配置和更改灵活服务器上的加密连接强制要求或 TLS 版本配置。

    下面是适用于灵活服务器的 SSL 和 TLS 设置的不同配置:

    服务器参数设置 禁用 SSL(加密连接) require_secure_transport 设置为 OFF 如果旧版应用程序不支持与 MySQL 灵活服务器建立加密连接,则可以通过将 require_secure_transport 设置为 OFF,来禁用与灵活服务器建立加密连接的强制要求。 强制使用 SSL 和低于 TLS 版本 1.2 的版本 require_secure_transport 设置为 ON,且 tls_version 设置为 TLS 1.0 或 TLS 1.1 如果旧版应用程序支持加密连接,但需要低于 TLS 版本 1.2 的版本,你可以启用加密连接,但将灵活服务器配置为允许连接使用应用程序支持的 TLS 版本(v1.0 或 v1.1) 强制使用 SSL 和 TLS 版本 1.2(默认配置) require_secure_transport 设置为 ON,且 tls_version 设置为 TLS 1.2 这是为灵活服务器建议的配置,同时也是默认配置。 强制使用 SSL 和 TLS 版本 1.3(受 MySQL v8.0 和更高版本支持) require_secure_transport 设置为 ON,且 tls_version 设置为 TLS 1.3 这是为新应用程序开发建议的有用配置

    不支持对灵活服务器上的 SSL 密码进行更改。 将 tls_version 设置为 TLS 版本 1.2 时,默认强制使用 FIPS 密码套件。 对于版本 1.2 以外的其他 TLS 版本,SSL 密码将设为 MySQL 社区安装附带的默认设置。

    请参阅 使用 SSL/TLS 进行连接 了解详细信息。

  • 了解如何使用 Azure 门户 Azure CLI 启用专用访问(VNet 集成)
  • 了解如何使用 Azure 门户 Azure CLI 启用公共访问(允许的 IP 地址)
  • 了解如何[从 Azure 门户为 Azure Database for MySQL 灵活服务器配置专用链接](灵活 - 教程 - 网络 - 使用 Azure 门户配置专用链接.md)
  •