mongodb自定义字段_MongoDB安全参考之资源文档

baf04c620b79dbe45d22b1c9d8b9aec2.png

71b16bd2711296b6f6092f0346caaddf.png

MongoDB Manual (Version 4.2)> Security > Security Reference > Resource Document

前面我们已经学了MongoDB安全参考之system.roles 集合和system.users 集合,本次我们将从以下几方面了解资源文档。

  • 数据库和/或集合资源

  • 集群资源

  • anyResource

资源文档指定了权限所允许操作的资源。

数据库和/或集合资源

使用以下语法指定数据库和/或者集合:

复制

{ db: <database>, collection: <collection> }

指定一个数据库中的集合作为操作资源

如果资源文档同时指定了dbcollection字段为非空字符串,操作资源就是该指定数据库中的指定集合。例如,下面的文档指定了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 集合

如果dbcollection两个字段都为空字符串(""),那么可操作的资源将是所有数据库中除system外的所有集合。

复制

{ db: "", collection: "" }

对于用户自定义角色,只有作用于admin数据库的角色才能拥有此资源指定的权限。

集群资源

要将群集指定为资源,请使用以下语法:

复制

{ cluster : true }

使用集群作为 actions 的操作资源,而不是对特定的数据库或集合进行操作,这样的操作会影响系统状态。此类操作的示例包括“关机”,“ 副本集重新配置”和“添加分片”。例如,以下文档授予“集群”上的“关机”动作。cluster资源是用来执行那些影响系统状态的操作,而不是用来对特定的数据库或集合执行操作。此类操作的示例包括shutdownreplSetReconfigaddShard。例如,以下文档会将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 存储

119576aa519de25a85aa28cc633a3a2a.png

喜欢我们,

分享、点赞、在看三连哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值