你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Synapse IP 防火墙规则

Tip

Microsoft Fabric Data Warehouse是数据湖基础上的企业规模关系仓库,具有未来就绪的体系结构、内置 AI 和新功能。 如果不熟悉数据仓库,请从Fabric Data Warehouse开始。 现有的指定 SQL 池工作负荷可以升级到 Fabric,以跨数据科学、实时分析和报告访问新功能。

例如,在名为 mysqlserver Azure Synapse Analytics 中创建一个新的逻辑服务器时,服务器级防火墙会阻止对 logical 服务器1 的公共终结点的所有访问。 Azure Synapse支持服务器级 IP 防火墙规则。 Azure Synapse Analytics工作区中的专用 SQL 池不使用逻辑 SQL 服务器,并且具有工作区级防火墙。

防火墙的工作原理

来自 Internet 和 Azure 的连接尝试在到达你的服务器或数据库之前,必须先通过防火墙

服务器级别 IP 防火墙规则

这些规则允许客户端访问整台服务器,即服务器所管理的所有数据库。 规则存储在 master 数据库中。 服务器的服务器级 IP 防火墙规则的最大数目限制为 256 个。 如果已启用 Allow Azure 服务和资源来访问此服务器设置,则这算作服务器的单个防火墙规则。

可以使用 Azure 门户、PowerShell 或 Transact-SQL 语句来配置服务器级 IP 防火墙规则。

注释

在使用 Azure 门户进行配置时,服务器级 IP 防火墙规则的最大数量限制为 256 个。

  • 只有订阅所有者或订阅参与者才能使用门户或 PowerShell。
  • 要使用 Transact-SQL,您必须以服务器级主体登录身份或 Microsoft Entra 管理员身份连接到 master 数据库。 (必须先由拥有 Azure 级权限的用户创建服务器级 IP 防火墙规则。)

注释

默认情况下,在从 Azure 门户创建新的逻辑 SQL 服务器期间,“允许 Azure 服务和资源访问此服务器”设置将设置为“否” 。

有关如何设置防火墙规则的建议

如果有多个数据库具有相同访问要求,并且不希望单独配置每个数据库,请使用服务器级 IP 防火墙规则。

来自互联网的连接

当计算机尝试从 Internet 连接到服务器时,防火墙会首先检查请求的发起 IP 地址。

  • 如果地址在服务器级 IP 防火墙规则中指定的范围内,则会为连接授权。
    • 服务器级别 IP 防火墙规则适用于服务器管理的所有数据库。
  • 如果地址不在任何服务器级 IP 防火墙规则的范围内,则连接请求将失败。

Permissions

若要创建和管理 IP 防火墙规则,需要具有以下角色之一:

创建和管理 IP 防火墙规则

使用 Azure 门户创建第一个服务器级防火墙设置,或者使用 Azure PowerShellAzure CLIREST API 以编程方式创建。 使用这些方法或 Transact-SQL 创建和管理其他服务器级 IP 防火墙规则。 Azure Synapse 只支持服务器级别 IP 防火墙规则。 不支持数据库级 IP 防火墙规则。

Tip

可以使用 Auditing for Azure Synapse Analytics 审核服务器级和数据库级防火墙更改。

使用 Azure 门户管理服务器级 IP 防火墙规则

若要在Azure门户中设置服务器级 IP 防火墙规则,请转到逻辑服务器的 Overview 页。

  1. 转到 “网络 ”页。

  2. 在“防火墙规则”部分添加规则,以添加正在使用的计算机的 IP 地址,然后选择“保存”。 此时,系统针对当前 IP 地址创建服务器级别 IP 防火墙规则。

使用 Transact-SQL 管理 IP 防火墙规则

目录视图或存储过程 级别 Description
sp_set_firewall_rule 服务器 创建或更新服务器级别 IP 防火墙规则
sp_delete_firewall_rule 服务器 删除服务器级别 IP 防火墙规则

添加服务器级 IP 防火墙规则。

EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
   @start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'

若要删除服务器级 IP 防火墙规则,请执行 sp_delete_firewall_rule 存储过程。 以下示例删除规则 ContosoFirewallRule

EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'

使用 PowerShell 管理服务器级 IP 防火墙规则

注释

本文使用 Azure Az PowerShell 模块,这是与 Azure 交互时推荐使用的 PowerShell 模块。 若要开始使用 Az PowerShell 模块,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

Important

PowerShell Azure 资源管理器(AzureRM)模块已于 2024 年 2 月 29 日弃用。 所有未来的开发都应使用 Az.Sql 模块。 建议用户从 AzureRM 迁移到 Az PowerShell 模块,以确保持续支持和更新。 不再维护或支持 AzureRM 模块。 Az PowerShell 模块和 AzureRM 模块中命令的参数基本相同。 有关兼容性的详细信息,请参阅 新的 Az PowerShell 模块简介

Cmdlet 级别 Description
Get-AzSynapseFirewallRule 服务器 返回 Synapse Analytics 防火墙规则。
New-AzSynapseFirewallRule 服务器 创建 Synapse Analytics 防火墙规则。
Remove-AzSynapseFirewallRule 服务器 删除 Synapse Analytics 防火墙规则。
Update-AzSynapseFirewallRule 服务器 更新 Synapse Analytics 防火墙规则。

使用 CLI 管理服务器级 IP 防火墙规则

Cmdlet 级别 Description
az synapse sql 管理 SQL 池。
az synapse workspace firewall-rule 管理工作区的防火墙规则。

有关工作区级防火墙规则,请参阅:

Cmdlet 级别 Description
az synapse workspace firewall-rule create 服务器 创建防火墙规则
az synapse workspace firewall-rule delete命令用于删除Synapse工作区防火墙规则。 服务器 删除防火墙规则
az synapse workspace firewall-rule list(列出 Azure Synapse 工作区的防火墙规则) 服务器 列出所有防火墙规则
az synapse workspace firewall-rule show 服务器 获取防火墙规则
az synapse workspace 更新防火墙规则 服务器 更新防火墙规则
az synapse workspace firewall-rule wait 服务器 将 CLI 置于等待状态,直到防火墙规则的条件得到满足

以下示例使用 CLI 在 Azure Synapse 中设置服务器级 IP 防火墙规则:

az synapse workspace firewall-rule create --name AllowAllWindowsAzureIps --workspace-name $workspacename --resource-group $resourcegroupname --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

使用 REST API 管理服务器级 IP 防火墙规则

Command Description
SQL 池 Synapse SQL 池管理。
Ip 防火墙规则 Synapse Ip 防火墙规则管理。

了解防火墙更新的延迟

服务器身份验证模型对所有安全设置更改的延迟为 5 分钟,除非数据库为封装式且没有故障转移伙伴。 在没有故障转移伙伴的情况下对包含的数据库所做的更改是即时的。 对于有故障转移伙伴的独立数据库,每个安全更新都会在主数据库上即时完成,而在辅助数据库上可能需要长达 5 分钟才能体现这些更改。

下表根据数据库类型和故障转移配置描述了安全设置更改的延迟:

身份验证模型 已配置故障转移 安全设置更改的延迟 潜伏实例
服务器身份验证 是的 5 分钟 所有数据库
服务器身份验证 5 分钟 所有数据库
封装式数据库 是的 5 分钟 备用数据库
封装式数据库

手动刷新防火墙规则

如果需要看到防火墙规则的更新速度比 5 分钟延迟更快,可以手动刷新防火墙规则。 登录到需要更新其规则的数据库实例,并运行 DBCC FLUSHAUTHCACHE。 这将导致数据库实例刷新其本地缓存和刷新防火墙规则。

DBCC FLUSHAUTHCACHE[;]

防火墙疑难解答

当访问不符合预期时,请考虑以下几点。

  • 本地防火墙配置:

    在计算机可以访问专用 SQL 池之前,可能需要在计算机上为 TCP 端口 1433 创建防火墙例外。 若要在 Azure 云边界内建立连接,可能需要打开其他端口。

  • 网络地址转换:

    由于网络地址转换(NAT),计算机用来连接到Azure Synapse Analytics的 IP 地址可能与计算机的 IP 配置设置中的 IP 地址不同。 若要查看计算机用于连接到 Azure 的 IP 地址:

    1. 登录到门户。
    2. 转到托管数据库的服务器上的“配置”选项卡。
    3. “允许的 IP 地址”部分下显示了“当前客户端 IP 地址”。 选择“允许的 IP 地址”旁边的“添加”,以允许此计算机访问服务器。
  • 对允许列表的更改尚未生效:

    更改Azure Synapse Analytics防火墙配置可能最多延迟 5 分钟才能生效。

  • 登录名未授权或使用了错误的密码:

    如果某个登录名对服务器没有权限或者使用的密码不正确,则与服务器的连接会被拒绝。 创建防火墙设置只能为客户端提供尝试连接到服务器的机会。 客户端仍必须提供所需的安全凭据。 有关详细信息,请参阅 Azure Synapse Analytics 连接设置

  • 动态 IP 地址:

    如果你的 Internet 连接使用动态 IP 寻址,并且在通过防火墙时遇到问题,请尝试以下解决方法之一:

    • 请求 Internet 服务提供商提供分配给访问服务器的客户端计算机的 IP 地址范围。 将此 IP 地址范围添加为 IP 防火墙规则。
    • 改为为您的客户端配置静态 IP 地址。 将 IP 地址添加为 IP 防火墙规则。