Azure Sql 数据库导出到 Azure blob 存储失败

Azure Sql database export to Azure blob storage failed

我试图通过 Azuer 门户将 azure Sql 数据库导出到 azure blob 存储,但出现错误:

Error encountered during the service operation. ; 
Exception Microsoft.SqlServer.Management.Dac.Services.ServiceException:Unexpected exception encountered while retrieving metadata for blob https://<blobstoragename>.blob.core.windows.net/databases/<databaseName>_12.10.2020-11:13:24.bacpac;.; Inner exception Microsoft.WindowsAzure.Storage.StorageException:The remote server returned an error: (403) Forbidden.;
Inner exception System.Net.WebException:The remote server returned an error: (403) Forbidden.

在 blob 存储帐户的防火墙设置中,所有网络访问都被拒绝。只能连接选定的网络,并且我激活了“允许受信任的 Microsoft 服务访问此存储帐户”选项。 Sql 服务器和存储具有到同一网络的专用端点连接。

我在能够访问 blob 存储的同一网络中设置了一个虚拟机。

当 public 网络访问被拒绝时,是否可以将 sql 数据库导出到 Azure 存储?如果是,我缺少哪个设置?

根据我的研究,在将 SQL 数据库导出到 Azure 存储时,目前不支持防火墙后面的 Azure 存储帐户。更多详情,请参考here. Besides, you can vote up the feedback让微软改进功能。

当 public 网络访问被拒绝时,是否可以将 sql 数据库导出到 Azure 存储?

是的,这是不可能的。但是会根据IP地址限制访问。

如果我们只设置存储防火墙设置:Allow access from Selected networkAllow trusted Microsoft services to access this storage account,当从 Azure SQL 数据库访问存储时,我们将收到 403 错误。

您错过的是,当我们设置 Allow access from Selected network 时,存储防火墙将更像 Azure SQL 数据库防火墙设置!我们可以看到 Firewall 设置中有一个客户端 IP。我们必须将客户端 IP 添加到防火墙,然后 Azure SQL 数据库才能访问它。