尝试将数据库导出到 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