使用 Azure CLI 创建和管理 Azure Database for MySQL 防火墙规则

适用于:Azure Database for MySQL - 单一服务器

重要

Azure Database for MySQL 单一服务器即将停用。 强烈建议升级到 Azure Database for MySQL 灵活服务器。 有关如何迁移到 Azure Database for MySQL 灵活服务器的详细信息,请参阅 Azure Database for MySQL 单一服务器发生了什么情况?

可以使用服务器级防火墙规则,管理从特定 IP 地址或某个范围的 IP 地址对 Azure Database for MySQL 服务器的访问。 使用便捷的 Azure CLI 命令,可创建、更新、删除、列出和显示防火墙规则,用于管理服务器。 有关 Azure Database for MySQL 防火墙的概述,请参阅 Azure Database for MySQL 服务器防火墙规则

也可使用虚拟网络 (VNet) 规则来保护对服务器进行的访问。 详细了解如何使用 Azure CLI 创建和管理虚拟网络服务终结点和规则

先决条件

防火墙规则命令:

从 Azure CLI 中使用 az mysql server firewall-rule 命令,创建、删除、列出、显示和更新防火墙规则

命令:

  • create:创建 Azure MySQL 服务器防火墙规则。
  • delete:删除 Azure MySQL 服务器防火墙规则。
  • list:列出 Azure MySQL 服务器防火墙规则。
  • show:显示 Azure MySQL 服务器防火墙规则的详细信息。
  • update:更新 Azure MySQL 服务器防火墙规则。

登录到 Azure,并列出 Azure Database for MySQL 服务器

使用 az login 命令通过 Azure 帐户安全连接到 Azure CLI。

  1. 从命令行运行以下命令:

    az login
    

    此命令将输出要在下一步骤中使用的代码。

  2. 使用 Web 浏览器打开页面 https://aka.ms/deviceloginchina,再输入代码。

  3. 出现提示时,请使用 Azure 凭据登录。

  4. 获得登录授权后,控制台中会打印出订阅列表。 复制所需订阅的 ID,便于设置要使用的当前订阅。 使用 az account set 命令。

    az account set --subscription <your subscription id>
    
  5. 如果不确定其名称,请列出订阅和资源组的 Azure Databases for MySQL 服务器。 使用 az mysql server list 命令。

    az mysql server list --resource-group myresourcegroup
    

    请注意列表中的名称属性,需要该属性来指定要使用的 MySQL 服务器。 如果需要,请确认该服务器的详细信息,并使用名称属性来确保其正确。 使用 az mysql server show 命令。

    az mysql server show --resource-group myresourcegroup --name mydemoserver
    

列出 Azure Database for MySQL 服务器上的防火墙规则

使用服务器名称和资源组名称,列出服务器上现有的服务器防火墙规则。 使用 az mysql server firewall list 命令。 请注意,应在“--server”开关(而不是在“--name”开关)中指定服务器名称属性

az mysql server firewall-rule list --resource-group myresourcegroup --server-name mydemoserver

输出会默认采用 JSON 格式列出规则(如果有)。 可使用“--output table”开关,以更具可读性的表格格式输出结果。

az mysql server firewall-rule list --resource-group myresourcegroup --server-name mydemoserver --output table

创建 Azure Database for MySQL 服务器上的防火墙规则

使用 Azure MySQL 服务器名称和资源组名称,在服务器上创建新的防火墙规则。 使用 az mysql server firewall create 命令。 提供规则名称以及规则的起始 IP 和结束 IP(对一系列 IP 地址提供访问权限)。

az mysql server firewall-rule create --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1 --start-ip-address 13.83.152.0 --end-ip-address 13.83.152.15

若要允许单个 IP 地址进行访问,请将相同的 IP 地址用作起始 IP 和结束 IP,如此示例中所示。

az mysql server firewall-rule create --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1 --start-ip-address 1.1.1.1 --end-ip-address 1.1.1.1

若要允许应用程序从 Azure IP 地址连接到 Azure Database for MySQL 服务器,请提供 IP 地址 0.0.0.0 作为起始 IP 和结束 IP,如此示例所示。

az mysql server firewall-rule create --resource-group myresourcegroup --server mysql --name "AllowAllWindowsAzureIps" --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

重要

该选项将防火墙配置为允许来自 Azure 的所有连接,包括来自其他客户的订阅的连接。 选择该选项时,请确保登录名和用户权限将访问限制为仅允许授权用户访问。

成功后,每个 create 命令输出会列出已创建的防火墙规则的详细信息,默认采用 JSON 格式。 如果失败,输出会改为显示错误消息文本。

更新 Azure Database for MySQL 服务器上的防火墙规则

使用 Azure MySQL 服务器名称和资源组名称,更新服务器上已有的防火墙规则。 使用 az mysql server firewall update 命令。 输入现有防火墙规则的名称,并提供要更新的起始 IP 和结束 IP 属性。

az mysql server firewall-rule update --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1 --start-ip-address 13.83.152.0 --end-ip-address 13.83.152.1

成功后,命令输出会列出更新后的防火墙规则的详细信息,默认采用 JSON 格式。 如果失败,输出会改为显示错误消息文本。

注意

如果不存在防火墙规则,更新命令将创建规则。

显示 Azure Database for MySQL 服务器上的防火墙规则的详细信息

使用 Azure MySQL 服务器名称和资源组名称,显示服务器上已有的防火墙规则的详细信息。 使用 az mysql server firewall show 命令。 输入现有防火墙规则的名称。

az mysql server firewall-rule show --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1

成功后,命令输出会列出指定的防火墙规则的详细信息,默认采用 JSON 格式。 如果失败,输出会改为显示错误消息文本。

删除 Azure Database for MySQL 服务器上的防火墙规则

使用 Azure MySQL 服务器名称和资源组名称,从服务器中删除已有的防火墙规则。 使用 az mysql server firewall delete 命令。 输入现有防火墙规则的名称。

az mysql server firewall-rule delete --resource-group myresourcegroup --server-name mydemoserver --name FirewallRule1

成功后没有任何输出。 如果失败,会显示错误消息文本。

后续步骤