- MongoDB官方文档中文版
- MongoDB中文手册说明
- MongoDB简介
- 安装 MongoDB
- The mongo Shell
- MongoDB CRUD 操作
- 聚合
- 数据模型
- 事务
- 索引
- 安全
- 安全检查列表
- 启用访问控制
- 身份验证
- 基于角色的访问控制
- TLS / SSL(传输加密)
- 静态加密
- 客户端字段级加密
- 审计
- 网络和配置强化
- 实现字段级别修订
- 安全参考
- 附录
- 变更流
- 复制
- 分片
- 分片键
- 哈希分片
- 范围分片
- 区
- 管理分片区
- 按位置细分数据
- 用于更改SLA或SLO的分层硬件
- 按应用或客户细分数据
- 仅插入工作负载的分布式本地写入
- 管理分片区
- 使用块进行数据分区
- 在分片集群中拆分数据块
- 管理
- 存储
- 存储引擎
- 日志记录
- 管理日志记录
- GridFS
- FAQ:MongoDB 存储
- 存储引擎
- 参考
- 运算符
- 查询与映射运算符
- 更新运算符
- 聚合管道阶段
- 聚合管道操作符
- $abs (aggregation)
- $acos (aggregation)
- $acosh (aggregation)
- $add (aggregation)
- $addToSet (aggregation)
- $allElementsTrue (aggregation)
- $and (aggregation)
- $anyElementTrue (aggregation)
- $arrayElemAt (aggregation)
- $arrayToObject (aggregation)
- $asin (aggregation)
- $asinh (aggregation)
- $atan (aggregation)
- $atan2 (aggregation)
- $atanh (aggregation)
- $avg (aggregation)
- $ceil (aggregation)
- $cmp (aggregation)
- $concat (aggregation)
- $concatArrays (aggregation)
- $cond (aggregation)
- $convert (aggregation)
- $cos (aggregation)
- $dateFromParts (aggregation)
- $dateToParts (aggregation)
- $dateFromString (aggregation)
- $literal (aggregation)
- 查询修饰符
- 数据库命令
- 聚合命令
- 地理空间命令
- 查询和写操作命令
- 查询计划缓存命令
- 认证命令
- 用户管理命令
- 角色管理命令
- 复制命令
- 分片命令
- 会话命令
- 管理命令
- 诊断命令
- 免费监控命令
- 系统事件审计命令
- mongo Shell 方法
- 集合方法
- db.collection.aggregate()
- db.collection.bulkWrite()
- db.collection.copyTo()
- db.collection.count()
- db.collection.countDocuments()
- db.collection.estimatedDocumentCount()
- db.collection.createIndex()
- db.collection.createIndexes()
- db.collection.dataSize()
- db.collection.deleteOne()
- db.collection.deleteMany()
- db.collection.distinct()
- db.collection.drop()
- db.collection.dropIndex()
- db.collection.dropIndexes()
- db.collection.ensureIndex()
- db.collection.explain()
- db.collection.find()
- db.collection.findAndModify()
- db.collection.findOne()
- db.collection.findOneAndDelete()
- db.collection.findOneAndReplace()
- db.collection.findOneAndUpdate()
- db.collection.getIndexes()
- db.collection.getShardDistribution()
- db.collection.getShardVersion()
- db.collection.insert()
- db.collection.insertOne()
- db.collection.insertMany()
- db.collection.isCapped()
- db.collection.latencyStats()
- db.collection.mapReduce()
- db.collection.reIndex()
- db.collection.remove()
- db.collection.renameCollection()
- db.collection.replaceOne()
- db.collection.save()
- db.collection.stats()
- db.collection.storageSize()
- db.collection.totalIndexSize()
- db.collection.totalSize()
- db.collection.update()
- db.collection.updateOne()
- db.collection.updateMany()
- db.collection.watch()
- db.collection.validate()
- 词汇表
- 默认的MongoDB端口
- 默认的MongoDB读/写关注
- 服务器会话
- MongoDB驱动
- FAQ
- 联系我们
- 更多资料
- [快学Mongo]
- [Mongo问题讨论区]
- [Mongo 驱动使用手册]
- 本书使用 GitBook 发布
资源文档
资源文档
在本页
资源文档指定了权限所允许操作的资源。
数据库和/或集合资源
使用以下语法指定数据库和/或者集合:
复制
{ 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/
译者:谢伟成
Copyright © 上海锦木信息技术有限公司 all right reserved,由 MongoDB汉化小组 提供技术支持文件修订时间: 2020-10-11 20:53:05