公用网络访问
注释
这些设置适用于在 Azure Synapse 工作区中创建的专用 SQL 池和无服务器 SQL 池。 这些说明不适用于与独立专用 SQL 池(前 SQL DW)关联的专用 SQL 池。
可以使用公用网络访问功能允许与 Azure Synapse 工作区建立传入公用网络连接。
- 公用网络访问处于禁用状态时,只能使用专用终结点连接到工作区。
- 公用网络访问处于启用状态时,还可以从公用网络连接到工作区。 可以在创建工作区期间和之后管理此功能。
重要说明
此功能仅适用于与 Azure Synapse Analytics 托管虚拟网络关联的 Azure Synapse 工作区。 但是,仍然可以向公用网络打开 Synapse 工作区,而不考虑其与托管 VNet 的关联。
禁用公用网络访问后,只要用户有足够的权限访问集成的 Git 存储库或相应的 Git 分支,对 Synapse Studio 中的 GIT 模式和提交更改的访问就不会被阻止。 但是,发布按钮不起作用,因为防火墙设置阻止了对实时模式的访问。
禁用公用网络访问后,自承载集成运行时仍可与 Synapse 通信。 我们目前不支持在自承载集成运行时与 Synapse 控制平面之间建立专用链接。
选择“禁用”选项不会应用你可能配置的任何防火墙规则。 此外,防火墙规则会在 Synapse 门户的网络设置中灰显。 再次启用公用网络访问时,会重新应用防火墙配置。
提示
当还原为启用状态时,请在编辑防火墙规则前等待一段时间。
在 Azure 门户中创建工作区时,请选择“网络”选项卡。
在“托管虚拟网络”下,选择“启用”以将工作区与托管虚拟网络关联,并允许进行公用网络访问。
在“公用网络访问”下,选择“禁用”以拒绝对工作区的公用访问。 如果要允许对工作区进行公用访问,则选择“启用”。
完成工作区创建流程的其余部分。
在 Azure 门户中选择 Synapse 工作区。
从左侧导航栏中选择“网络”。
选择“禁用”以拒绝对工作区的公用访问。 如果要允许对工作区进行公用访问,则选择“已启用”。
处于禁用状态时,“防火墙规则”会灰显以指示防火墙规则未生效。 防火墙规则配置会保留。
选择“保存”以保存更改。 通知会确认已成功保存网络设置。
最低 TLS 版本
无服务器 SQL 终结点和开发终结点仅接受 TLS 1.2 及更高版本。
自 2021 年 12 月以来,新 Synapse 工作区中工作区管理的专用 SQL 池至少需要 TLS 1.2 级别。 可以使用最低 TLS REST API 对新 Synapse 工作区或现有工作区提高或降低此要求,以支持无法在工作区中使用更高 TLS 客户端版本的用户建立连接。 客户还可以提高最低 TLS 版本来满足其安全需求。
重要说明
从 2024 年 11 月开始,Azure 开始停用较旧的 TLS 版本(TLS 1.0 和 1.1)。 使用 TLS 1.2 或更高版本。 2025 年 3 月 31 日之后,无法再将 Azure Synapse Analytics 客户端连接的最低 TLS 版本设置为低于 TLS 1.2。 在此日期后,从使用版本低于 1.2 的 TLS 的连接进行登录尝试将会失败。 有关详细信息,请参阅公告:Azure 对 TLS 1.0 和 TLS 1.1 的支持即将结束。
Azure Policy
阻止修改 Synapse 工作区中网络设置的 Azure 策略目前不可用。
网络和连接
可以在逻辑服务器中更改这些设置。 逻辑 SQL 服务器可以同时托管不在 Azure Synapse Analytics 工作区中的 Azure SQL 数据库和独立专用 SQL 池。
重要说明
这些设置适用于与逻辑服务器关联的独立专用 SQL 池(前 SQL DW),而不是在 Azure Synapse Analytics 工作区中。 这些说明不适用于 Azure Synapse Analytics 工作区中的专用 SQL 池。
更改公共网络访问权限
可以通过 Azure 门户、Azure PowerShell 和 Azure CLI 更改独立专用 SQL 池的公共网络访问。
注释
这些设置在应用后会立即生效。 如果客户不满足每个设置的要求,则可能会遇到连接丢失的情况。
若要为托管独立专用 SQL 池的逻辑服务器启用公用网络访问,请执行以下作:
- 转到 Azure 门户,转到 Azure 中的逻辑服务器。
- 在“安全性”部分下,选择“网络”页。
- 选择“公用访问”选项卡,然后将“公用网络访问”设置为“选择网络”。
在此页中,可以添加虚拟网络规则,并为公共终结点配置防火墙规则。
选择“专用访问”选项卡以配置专用终结点。
可以使用 Azure PowerShell 更改公用网络访问。
下面的 PowerShell 脚本展示了如何在服务器级别 Get 和 Set“公用网络访问”属性。 在以下 PowerShell 示例脚本中,用强密码替换 <strong password>。
# Get the Public Network Access property
(Get-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group).PublicNetworkAccess
# Update Public Network Access to Disabled
$SecureString = ConvertTo-SecureString "<strong password>" -AsPlainText -Force
Set-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group -SqlAdministratorPassword $SecureString -PublicNetworkAccess "Disabled"
可以使用 Azure CLI 更改公用网络设置。
以下 CLI 脚本演示如何在 Bash shell 中更改“公用网络访问”设置:
# Get current setting for Public Network Access
az sql server show -n sql-server-name -g sql-server-group --query "publicNetworkAccess"
# Update setting for Public Network Access
az sql server update -n sql-server-name -g sql-server-group --set publicNetworkAccess="Disabled"
拒绝公用网络访问
“公用网络访问”默认设置为“禁用”。 客户可以选择使用公共终结点(使用基于 IP 的服务器级防火墙规则或虚拟网络防火墙规则)或专用终结点(使用 Azure 专用链接)连接到数据库,如网络访问概述中所述。
当将“公用网络访问”设置为“禁用”时,将只允许从专用终结点进行连接。 将拒绝从公共终结点进行的所有连接,并显示如下错误消息:
Error 47073
An instance-specific error occurred while establishing a connection to SQL Server.
The public network interface on this server is not accessible.
To connect to this server, use the Private Endpoint from inside your virtual network.
当将“公用网络访问”设置为“禁用”时,将拒绝添加、删除或编辑任何防火墙规则的所有尝试,并显示如下错误消息:
Error 42101
Unable to create or modify firewall rules when public network interface for the server is disabled.
To manage server or database level firewall rules, please enable the public network interface.
确保 将公共网络访问 设置为 “所选网络 ”,以便能够为 Azure Synapse Analytics 添加、删除或编辑任何防火墙规则。
最低 TLS 版本
最低 传输层安全性 (TLS) 版本设置允许客户选择正在使用的 TLS 版本。 可以使用 Azure 门户、Azure PowerShell 和 Azure CLI 更改最低 TLS 版本。
测试以确认应用程序是否支持它后,建议将最低 TLS 版本设置为 1.3。 此版本包括早期版本中漏洞的修复,是独立专用 SQL 池支持的最高 TLS 版本。
即将到来的退休制度变更
Azure 已宣布对旧 TLS 版本(TLS 1.0 和 1.1)的支持将于 2025 年 8 月 31 日结束。 有关详细信息,请参阅 TLS 1.0 和 1.1 弃用。
从 2024 年 11 月开始,将无法再为低于 TLS 1.2 的 Azure Synapse Analytics 客户端连接设置最低 TLS 版本。
可使用 Azure 门户、Azure PowerShell 或 Azure CLI 配置客户端连接的最低 TLS 版本。
谨慎
- 最低 TLS 版本的默认设置为允许使用所有版本。 在强制执行 TLS 的某个版本后,无法恢复默认设置。
- 强制实施最低 TLS 1.3 可能会导致来自不支持 TLS 1.3 的客户端的连接出现问题,因为并非所有驱动程序和操作系统都支持 TLS 1.3。
如果客户使用的应用程序依赖于更低的 TLS 版本,我们建议根据应用程序的要求设置最低 TLS 版本。 如果应用程序要求未知或工作负载依赖于不再维护的旧驱动程序,建议不要设置任何最低 TLS 版本。
有关详细信息,请参阅 有关数据库连接的 TLS 注意事项。
设置最低 TLS 版本后,如果客户所使用的 TLS 版本低于服务器的最低 TLS 版本,则将无法进行身份认证,并显示以下错误:
Error 47072
Login failed with invalid TLS version
注释
在应用层强制实施最低 TLS 版本。 尝试在协议层确定 TLS 支持的工具在直接针对终结点运行时,除了返回所需的最低版本,还可能返回多个 TLS 版本。
- 转到 Azure 门户,转到 Azure 中的逻辑服务器。
- 在“安全性”部分下,选择“网络”页。
- 选择“连接”选项卡。选择与服务器关联的所有数据库所需的“最低 TLS 版本”,然后选择“保存”。
可以使用 Azure PowerShell 更改最低 TLS 版本。
以下 PowerShell 脚本演示如何在逻辑服务器级别设置Get最低 TLS 版本属性:
$serverParams = @{
ServerName = "sql-server-name"
ResourceGroupName = "sql-server-group"
}
(Get-AzSqlServer @serverParams).MinimalTlsVersion
若要在逻辑服务器层级设置Set最低 TLS 版本属性,请用您的 Sql 管理员密码替换<strong_password_here_password>并执行:
$serverParams = @{
ServerName = "sql-server-name"
ResourceGroupName = "sql-server-group"
SqlAdministratorPassword = (ConvertTo-SecureString "<strong_password_here_password>" -AsPlainText -Force)
MinimalTlsVersion = "1.2"
}
Set-AzSqlServer @serverParams
可以使用 Azure CLI 更改最低 TLS 设置。
以下 CLI 脚本演示如何在 Bash shell 中更改“最低 TLS 版本”设置:
# Get current setting for Minimal TLS Version
az sql server show -n sql-server-name -g sql-server-group --query "minimalTlsVersion"
# Update setting for Minimal TLS Version
az sql server update -n sql-server-name -g sql-server-group --set minimalTlsVersion="1.2"
识别客户端连接
可以使用 Azure 门户和 SQL 审核日志来识别使用 TLS 1.0 和 1.1 进行连接的客户端。
在 Azure 门户中,转到数据库资源的“监视”下的“指标”,然后按“成功连接”以及 TLS 版本 = 1.0 和 1.1 进行筛选:
还可以直接在数据库中查询 sys.fn_get_audit_file 以查看 client_tls_version_name 审核文件中的内容。