Cosmos DB账号是否支持对用户/用户组分配指定精细化访问权限?
Azure Cosmos DB 精细化权限分配解答
可以实现,Azure Cosmos DB 采用Azure资源层RBAC + 数据平面原生RBAC的双层权限体系,完全支持针对用户或用户组配置自定义专属访问权限,你提到的三类场景都可以通过组合配置内置角色或自定义角色覆盖。
场景1:为用户配置reader、执行、防火墙更新权限
- 资源层操作(含防火墙更新):分配内置
Cosmos DB 读者角色,同时附加自定义角色,自定义角色仅开放Microsoft.DocumentDB/databaseAccounts/firewallRules/*相关操作权限,其余资源层操作全部禁用 - 数据层执行权限:按需分配对应数据执行权限,若需要执行存储过程、UDF等代码逻辑,分配数据平面内置的
Cosmos DB 数据执行者角色即可
场景2:为用户配置读写权限、数据库修改权限、防火墙更新权限
- 资源层操作:和场景1一致,分配防火墙更新专属自定义角色即可
- 数据层操作:直接分配内置
Cosmos DB 数据贡献者角色,该角色默认包含数据读写、数据库/容器结构创建修改的全部权限,完全匹配需求
场景3:限制用户操作权限,禁止添加/移除数据库、容器,或禁止执行更新操作
- 若需要完全禁止结构修改和数据更新,直接分配内置
Cosmos DB 数据读者角色即可,该角色仅开放数据读取权限,没有任何结构修改、数据写入的操作权限 - 若需要部分开放写入权限但禁止结构修改,可以自定义数据平面角色,配置时仅包含数据读写权限,排除
Microsoft.DocumentDB/databaseAccounts/dbs/write、Microsoft.DocumentDB/databaseAccounts/dbs/containers/write两类结构操作权限即可
如果有更细粒度的管控需求,还可以将角色的作用域限定到单个数据库、单个容器甚至指定分区键范围,实现更精准的权限控制。
内容的提问来源于stack exchange,提问作者Surya
相关产品推荐
相关产品推荐

