sql-server - PowerShell New-AzSqlDatabaseImport - 0:无法访问存储帐户。请检查存储帐户名称和密钥,然后重试
问题描述
我编写了一个 PowerShell 脚本,将本地 bacpac 文件复制到 Azure 存储帐户容器。将 bacpac 文件从本地文件系统复制到 Azure blob 容器后,我将 bacpac 文件的存储帐户密钥和 URI 提供给New-AzSqlDatabaseImport
命令。
然而,它永远不会成功。我总是收到一条0: The storage account cannot be accessed. Please check the storage account name and key and try again
错误消息。不幸的是,无论我尝试了什么,我都无法让它工作,而且该错误消息根本不是很有描述性或有帮助。在详细响应中,我看到严重性“16”代码“0”和“无法访问存储帐户。请检查存储帐户名称和密钥,然后重试”的消息。
是否-ResourceGroupName
必须New-AzSqlDatabaseImport
同时包含 SQL 服务器和存储帐户?需要启用哪些权限才能允许New-AzSqlDatabaseImport
命令成功访问存储帐户?
我不明白我做错了什么。我对可以正常工作的命令使用相同的密钥Set-AzStorageBlobContent
,所以我知道密钥是正确的。bacpac 文件的 URI 也是正确的。那么我做错了什么?存储帐户和 SQL Server 实例的资源组名称不同是否重要?防火墙中是否有我需要更改的存储帐户的内容?
任何帮助表示赞赏!
解决方案
我们已经在本地环境中使用以下 cmdlet 进行了测试,我们可以成功导入 SQL 数据库,以下语句基于我们的分析。
New-AzSqlDatabaseImport -ResourceGroupName "<resourceGroupName>" -ServerName "bacapserverdb" -DatabaseName "<DatabaseName>" -StorageKeyType "StorageAccessKey" -StorageKey "<storageAccountKey>" -StorageUri "<bacpacFileUri" -AdministratorLogin "<SQLServerUserName>" -AdministratorLoginPassword $SecureString -Edition Standard -ServiceObjectiveName S0 -DatabaseMaxSizeBytes 1073741824
参考下面的屏幕截图,从 Azure 门户中提取存储帐户的访问密钥。
是否
-ResourceGroupName
必须New-AzSqlDatabaseImport
同时包含 SQL 服务器和存储帐户?
您只需按照文档中的说明传递 SQL 数据库的 ResourceGroupName 。
需要启用哪些权限才能允许
New-AzSqlDatabaseImport
命令成功访问存储帐户?
您不需要任何特殊权限,因为您将存储帐户访问密钥作为New-AzSqlDatabaseImport
cmdlet 的一部分传递。
存储帐户和 SQL Server 实例的资源组名称不同是否重要?
当您传递New-AzSqlDatabaseImport
命令的 SQL 数据库的资源组名称时。根据我的理解,即使两个资源都在不同的资源组中,这个操作也可以成功。
防火墙中是否有我需要更改的存储帐户的内容?
当我在本地环境中进行测试时,我们没有对存储帐户上的防火墙设置进行任何更改。
这是成功导入 sql 数据库的示例输出帖子。
导入\导出 SQL 数据库的限制:
- 当允许访问 Azure 服务设置为关闭时,导入导出服务不起作用。
- Import 不支持在创建新数据库时指定备份存储冗余,并使用默认的异地冗余备份存储冗余创建。要解决此问题,首先使用 Azure 门户或 PowerShell 创建具有所需备份存储冗余的空数据库,然后将 BACPAC 导入此空数据库。
推荐阅读
- python - Tkinter 中的快捷键绑定
- c - 保证在 sigsuspend 返回时会调用信号处理程序
- java - 使用 Guice 的 MultiBinder 和 Asisstedinjection 将相同的参数绑定到多个实现
- javascript - 有没有办法在 Javascript 中停止时间,所以我可以针对 DateTime.now() 测试一个函数?
- javascript - 我的 img src 使用 react 出错,照片未显示
- laravel - 具有空值的 Laravel FirstOrCreate 函数转换为字符串
- python - Pandas GroupBy 连续与 Where 条件
- javascript - 我如何在 vue js 中使用 swiper.js
- python - 循环中的 Pygame 混合器
- laravel - 命令方法中的 Laravel 依赖注入