MongoDB Manual (Version 4.2)> Security > Security Reference > Resource Document
前面我们已经学了MongoDB安全参考之system.roles 集合和system.users 集合,本次我们将从以下几方面了解资源文档。
数据库和/或集合资源
集群资源
anyResource
资源文档指定了权限所允许操作的资源。
数据库和/或集合资源
使用以下语法指定数据库和/或者集合:
复制
{ db: <database>, collection: <collection> }
指定一个数据库中的集合作为操作资源
如果资源文档同时指定了db
和collection
字段为非空字符串,操作资源就是该指定数据库中的指定集合。例如,下面的文档指定了products
数据库中的inventory
集合。
复制
{ db: "products", collection: "inventory" }
非admin
数据库范围内的用户自定义角色,为其权限指定操作资源时必须指定与该角色相同的数据库。admin
数据库范围内定义的角色可以指定其他其他数据库为操作资源。
指定一个数据库为资源
如果仅collection
字段为空字符串(""
),操作资源就是该指定的数据库,但system
集合除外。例如,下面的资源文档指定了操作资源为test
数据库,但system
集合除外。
复制
{ db: "test", collection: "" }
非admin
数据库范围内的用户自定义角色,为其权限指定操作资源时必须指定与该角色相同的数据库。admin
数据库范围内定义的角色可以指定其他数据库为操作资源。
说明
当你指定一个数据库作为操作资源时,system
集合是不包括在内的,除非像下面这样明确指定:
复制
{ db: "test", collection: "system.js" }
system集合包括但是不限于以下几项:
.system.profile
.system.js
admin
数据库中的system.users集合admin
数据库中的system.roles集合
通过数据库指定集合作为操作资源
如果db
字段是空字符串(""
),那么操作资源则是所有数据库中具有指定名称的集合。例如,以下文档指定了所有数据库中accounts
集合的资源:
复制
{ db: "", collection: "accounts" }
对于用户自定义角色,只有作用于admin
数据库的角色才能拥有此资源指定的权限。
指定所有数据库中的非 system 集合
如果db
和collection
两个字段都为空字符串(""
),那么可操作的资源将是所有数据库中除system
外的所有集合。
复制
{ db: "", collection: "" }
对于用户自定义角色,只有作用于admin
数据库的角色才能拥有此资源指定的权限。
集群资源
要将群集指定为资源,请使用以下语法:
复制
{ cluster : true }
使用集群作为 actions 的操作资源,而不是对特定的数据库或集合进行操作,这样的操作会影响系统状态。此类操作的示例包括“关机”,“ 副本集重新配置”和“添加分片”。例如,以下文档授予“集群”上的“关机”动作。cluster
资源是用来执行那些影响系统状态的操作,而不是用来对特定的数据库或集合执行操作。此类操作的示例包括shutdown
、replSetReconfig
和addShard
。例如,以下文档会将shutdown
操作赋予cluster
。
复制
{ resource: { cluster : true }, actions: [ "shutdown" ] }
对于用户自定义角色,只有作用于admin
数据库的角色才能拥有此资源指定的权限。
anyResource
内部资源anyResource
使我们能访问系统中任何资源,它只供内部使用。除特殊情况外,不要使用这个资源。使用这个资源的语法为{ anyResource: true }
。
原文链接:
https://docs.mongodb.com/manual/reference/resource-document/
译者:谢伟成 MongoDB中文社区翻译小组成员
往期翻译:
The mongo Shell
— mongo 命令行
MongoDB CRUD操作
— 批量写操作
— 读关注
事务
— 事务
— 事务操作
索引
— 2dsphere索引
— 哈希索引
— 索引属性
— 在集合上创建索引
— 度量索引使用情况
安全
— 安全检查列表
— 启用访问控制
— 身份验证
— 审计
—— 配置审计
—— 配置审计过滤器
—— 系统事件审计消息
— 网络和配置强化
— 安全参考
—— system.roles 集合
—— system.users 集合
复制
— 副本集成员
— 副本集Oplog
— 副本集数据同步
— 副本集部署架构
分片
— 分片键
管理
— 产品说明
— 操作检查表
— 性能
— 备份方法
存储
—— WiredTiger存储引擎
—— 内存存储引擎
— 常见问答:MongoDB 存储
喜欢我们,
请分享、点赞、在看三连哦~