无法从 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(访问被拒绝。)
SQL Server 2016 使用 sql 用户通过 azure blob 存储上的 polybase 访问外部表 - 访问被拒绝,因为没有登录映射