无法从 BLOB 存储打开备份设备 - 访问被拒绝

Posted

技术标签:

【中文标题】无法从 BLOB 存储打开备份设备 - 访问被拒绝【英文标题】:Cannot open backup device from BLOB Storage - Access is Denied 【发布时间】:2021-10-08 23:30:39 【问题描述】:

我在 Azure 的存储容器中有一个 SQL 备份,我正在尝试通过 SSMS 从另一个 Azure VM 将数据库还原到我的 Azure SQL 实例。

存储容器上的公共访问级别设置为“Blob”。我的客户端已将运行 SSMS 以进行还原的 Azure VM 的公共 IP 列入白名单。

我也在使用具有数据库所有者权限的帐户登录 SSMS。

我收到的 BLOB SAS 具有完整列表和读写访问权限。

如果我尝试检索文件列表或尝试进行还原,我会收到“无法打开备份设备.....操作系统错误 5(访问被拒绝。)。-底部完全错误。

有什么想法吗?

创建凭据

使用大师 创建凭证 [https://imis20prodstorageaccount.blob.core.windows.net/backups] WITH IDENTITY='共享访问签名' , SECRET = '删除发布' 去吧

测试从 URL 检索文件列表 -- GENERATES ERROR BELOW

仅从 URL 恢复文件列表 = 'https://imis20prodstorageaccount.blob.core.windows.net/backups/GGC_iMIS-5-10-21.BAK'

从 URL 恢复——在下面生成错误

从 URL 恢复数据库 GGC_iMIS_TEST = 'https://imis20prodstorageaccount.blob.core.windows.net/backups/GGC_iMIS-5-10-21.BAK'

消息 3201,第 16 级,状态 2,第 11 行 无法打开备份设备“https://imis20prodstorageaccount.blob.core.windows.net/backups/GGC_iMIS-5-10-21.BAK”。操作系统错误 5(拒绝访问。)。 消息 3013,第 16 级,状态 1,第 11 行 RESTORE FILELIST 异常终止。

【问题讨论】:

【参考方案1】:

要匹配 SQL 版本,您需要检查 SQL 服务器版本并构建具有正确结构的临时表。临时表的架构必须与命令输出的架构相同。

用户可以使用命令 RESTORE FILELISTONLY 验证备份文件。您会看到数据库更新后的逻辑名称已损坏或损坏,并且名称的最后一个字符被截断。

推荐文件:RESTORE Statements - FILELISTONLY (Transact-SQL)

类似问题:Fix SQL Server Backup Error

【讨论】:

以上是关于无法从 BLOB 存储打开备份设备 - 访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

Azure blob 到 Azure SQL 数据库:无法批量加载,因为无法打开文件“xxxx.csv”。操作系统错误代码 5(访问被拒绝。)

无法打开备份设备。操作系统错误 5

SQL Server 2016 使用 sql 用户通过 azure blob 存储上的 polybase 访问外部表 - 访问被拒绝,因为没有登录映射

java.io.filenotfoundexception 在设备上打开失败的 eacces(权限被拒绝)

无法重新打开 DSP 设备 /dev/dsp:权限被拒绝

文件拒绝访问