Azure 应用服务 (ASE) SQL Azure 连接
Posted
技术标签:
【中文标题】Azure 应用服务 (ASE) SQL Azure 连接【英文标题】:Azure app service (ASE) SQL Azure connection 【发布时间】:2020-04-07 10:16:39 【问题描述】:我在应用服务环境 (ASE) 中有一个应用服务。我有一个虚拟网络,我已将 ASE 放入 Vnet 的子网中。
我想要做的是,我正在尝试连接不在 Vnet 或我的天蓝色租户中的 SQL Azure 端点。 ASE 有一个出站 IP 地址,当我尝试 tcpping 到 Azure SQL 端点时,它响应我没有任何问题。
问题是当我尝试在应用程序内连接 SQL 端点时,我收到“无法打开服务器”错误。当 SQL Azure 端点中有防火墙时,通常会发生这种情况。我检查了日志分析(在目标 SQL 端点中),发现我的应用程序连接被阻止,但是当我检查客户端 IP 时,它显示了 ASE 的私有 IP。我真的不明白这怎么可能?我会在那里看到我的公共 IP,因为 ASE 是外部 ASE。
你知道这怎么可能吗?
【问题讨论】:
【参考方案1】:如果您在 ASE 子网中为Microsoft.Sql
启用了virtual network service endpoint,当您在服务端点开启的情况下连接到 Azure SQL 服务器时,SQL 连接的源 IP 将切换到 私有 IP 空间 的 VNet。
如果是这样,您需要通过在 SQL 服务器的 VNet 防火墙规则中指定来允许给定的 VNet/子网。如果不想使用虚拟网络服务端点,可以在 SQL Server 的防火墙中将应用程序的出站 IP 地址列入白名单。
有关更多信息,您可以阅读blog1 和blog2。
【讨论】:
以上是关于Azure 应用服务 (ASE) SQL Azure 连接的主要内容,如果未能解决你的问题,请参考以下文章
将应用部署到 Azure 内部应用服务环境 (ASE ILB) 内的 Azure 应用服务
Azure ASE 中的应用程序需要使用 NTML Web 服务进行身份验证
将 MVC 项目从本地迁移到 Azure - SQL Server 问题
将本地 SQL Server 数据库同步到 Azure Windows Server SQL Server 的最佳方式是啥