尝试将数据库导出到 Azure 中的存储帐户时出现 403 错误

Posted

技术标签:

【中文标题】尝试将数据库导出到 Azure 中的存储帐户时出现 403 错误【英文标题】:403 Error while trying to export a DB into a Storage Account in Azure 【发布时间】:2020-10-06 07:44:50 【问题描述】:

我正在使用 PowerShell 使用命令 New-AzureRmSqlDatabaseExport 导出数据库。

我的命令看起来像

$name = 'admin'
$my_password = 'password'
$db = 'my-db'
$server = 'my-db-sqlserver'
$sa_key = 'storage_account_key' 
$sa_uri = 'https://testingimmutableblob.blob.core.windows.net/testdbimmutable/test_export.bacpac' 


New-AzureRmSqlDatabaseExport -ResourceGroupName 'my_resource' -ServerName $server -DatabaseName $db -StorageKeyType 'StorageAccessKey' -StorageKey $sa_key -StorageUri $sa_uri -AdministratorLogin $name -AdministratorLoginPassword $my_password

当我运行最后一个命令时,我得到了错误

Unexpected exception encountered while retrieving metadata for blob

我不确定问题是什么。我四处搜索,发现有时服务器上的时间可能不匹配。我查了一下,服务器上的时间似乎是正确的。我还进入了数据库并尝试使用界面将其导出。我得到了完全相同的错误,这很有趣。

有什么想法吗?

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.

【问题讨论】:

只是想知道您的存储帐户是否位于防火墙后面?请检查 Azure 门户中存储帐户的防火墙规则。 能否告诉我是否可以通过 Azure 门户进行操作? 此外,请将-debug 添加到您的 PowerShell 命令以获取详细的错误消息。 我在尝试通过门户界面导出时遇到同样的错误。我认为这与防火墙问题有关 【参考方案1】:

请检查您的存储防火墙和虚拟网络,设置Allow access from All networks

或者将您的客户端 IP 添加到网络防火墙:

如果你只设置Allow read access to storage logging from any network

访问存储时会出现 403 错误:

希望这会有所帮助。

【讨论】:

【参考方案2】:

403 表示禁止。它很可能与权限有关。请重新生成密钥。您使用的用户帐户不是 SQL Server 管理员吗?

另一个建议是将服务器名称添加到用户名中,例如 yourremail@yourdoamin.com@dbservername。

【讨论】:

以上是关于尝试将数据库导出到 Azure 中的存储帐户时出现 403 错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Logic 应用中创建存储帐户时出现“无效资源”消息

为 Azure 存储帐户创建专用终结点连接时出现 ResourceNotFound 错误

Powershell:将所有具有“NetworkRuleSet”属性的 Azure 存储帐户列出/导出到 CSV

尝试将生成的 pdf 文件上传到 Azure Blob 存储时出现 404 错误

Azure SQL 导出无法在 Blob 容器中备份

将 mongo 导入到 Azure Cosmos 模拟器时出现问题