VNET中的Azure WebApp和AzureSQL

VNET中的Azure WebApp和AzureSQL,azure,azure-sql-database,azure-web-app-service,azure-virtual-network,Azure,Azure Sql Database,Azure Web App Service,Azure Virtual Network,我想做以下工作: $conn = sqlsrv_connect($serverName, $connectionOptions); 一个Azure Web应用程序 一个AzureSQL 我想限制对AzureSQL的访问仅限于WebApp。 因此,我做了以下工作: 1) 创建WebApp 2) 创建AzureSQL 3) 使用子网和网关创建VNET。所以我的VNET必须连接到子网 4) 在我的网络应用程序上,我选择了“连接到我的VNET” 5) 在网关中,我看到“连接:1” 6) 在防火墙下的S

我想做以下工作:

$conn = sqlsrv_connect($serverName, $connectionOptions);
一个Azure Web应用程序 一个AzureSQL

我想限制对AzureSQL的访问仅限于WebApp。 因此,我做了以下工作: 1) 创建WebApp

2) 创建AzureSQL

3) 使用子网和网关创建VNET。所以我的VNET必须连接到子网

4) 在我的网络应用程序上,我选择了“连接到我的VNET”

5) 在网关中,我看到“连接:1”

6) 在防火墙下的SQL Server中,我将“从Azure访问”切换为“关闭”,然后 添加了unter VNET my VNET(默认子网)并启用了“服务端点”

7) 现在,我的WebApp中有一个index.php,其中包含以下内容:

$conn = sqlsrv_connect($serverName, $connectionOptions);
但这失败了。当我在SQL Server中打开“允许Azure”选项时,一切正常。但我只想从我的WebApp访问

那么我做错了什么?你需要更多的信息吗


谢谢

当您将WebApp连接到Vnet时,它只授予WebApp访问Vnet中的资源的权限,类似地,当您将SQL server连接到Vnet时。它授予SQL server与vnet中的资源交互的权限。在这种情况下,无法限制只有webapp才能访问SQL server

然而,你可以达到你的目的。ASE功能可以提供一个完全隔离的专用环境,用于安全地大规模运行应用程序服务应用程序

下面是一个类似的例子: