我们的 SQL Server 每晚备份到 Blob 存储。
我希望一些员工(已经在 Active Directory 中)能够查看备份文件列表并将其下载到他们的机器上。然后他们可以在本地恢复数据库并进行测试。
这些成员不应能够删除这些 blob。(显然,团队成员无意中删除备份是一件坏事)
是否可以为多个用户提供对 Blob 容器的读取访问权限?
我可以调出存储帐户的访问控制(IAM)刀片,然后为用户分配“读者”角色。
该用户现在可以查看存储帐户的初始刀片。
但如果他试图拿起BLOB SERVICE \ Containers
刀片,就会看到“拒绝访问”的文字。
有什么方法可以为用户分配对容器的读取权限吗?
答案1
但是如果他尝试调出 BLOB SERVICE \ Containers 刀片,他会看到文本“ACCESS DENIED”。
这是一种设计行为,角色Reader
只能查看有关资源的一切,但不能改变任何内容,也不能读取容器下的文件。
如果您想让用户可以读取该存储帐户中的文件,我们应该owner
为这些帐户设置角色。
这些成员不应该能够删除这些 blob。
目前,Azure 不支持此功能。如果我们希望用户可以从存储帐户读取文件,我们应该设置 role owner
。如果我们将用户设置为所有者,则用户可以从该存储帐户中删除文件。
即使我们设置了CanNotDelete
该存储帐户,用户仍然可以从中删除文件。锁不会限制资源如何执行其自身功能。资源更改受到限制,但资源操作不受限制。
这里有一个与你类似的案例,请参考我的回答。
作为一种解决方法,我们可以使用Azcopy
或其他工具将备份文件下载到本地存储(计划任务),并让其他用户从本地存储下载备份文件。
答案2
我刚刚测试过,现在有一些角色可以提供您需要的访问级别。请将以下角色添加到所需的用户:
STORAGE BLOB DATA READER (PREVIEW)
READER AND DATA ACCESS
用户必须注销并登录。