Docs 菜单
Docs 主页
/
MongoDB Manual
/ /

资源文档

在此页面上

  • 数据库和/或集合资源
  • 集群资源
  • anyResource

资源文档指定了权限允许 actions访问的资源。

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

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

如果资源文档将dbcollection字段都指定为非空字符串,则资源是指定数据库中的指定集合。例如,以下文档指定products数据库中inventory集合的资源:

{ db: "products", collection: "inventory" }

对于作用域为非admin数据库的用户定义角色,其权限的资源规范必须指定与该角色相同的数据库。作用域为admin数据库的用户定义角色可以指定其他数据库。

如果仅collection字段为空字符串 ( "" ),则资源为指定数据库,不包括系统集合。例如,以下资源文档指定了test数据库的资源,不包括系统集合:

{ db: "test", collection: "" }

对于作用域为非admin数据库的用户定义角色,其权限的资源规范必须指定与该角色相同的数据库。作用域为admin数据库的用户定义角色可以指定其他数据库。

注意

当您将数据库指定为资源时,系统集合将被排除,除非您明确命名它们,如下所示:

{ db: "test", collection: "system.js" }

系统集合包括但不限于以下内容:

如果仅db字段为空字符串 ( "" ),则资源是所有数据库中具有指定名称的所有集合。例如,以下文档指定了所有数据库中所有accounts集合的资源:

{ db: "", collection: "accounts" }

对于用户定义的角色,只有作用域为admin数据库的角色的权限才能具有此资源规范。

如果dbcollection字段均为空字符串 ( "" ),则资源为所有数据库中的所有集合(不包括系统集合):

{ db: "", collection: "" }

对于用户定义的角色,只有作用域为admin数据库的角色的权限才能具有此资源规范。

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

{ cluster : true }

cluster 资源用于影响系统状态的操作,而不是对一组特定的数据库或集合执行操作。此类操作的示例包括shutdownreplSetReconfigaddShard 。例如,以下文档授予对 执行操作shutdown cluster

{ resource: { cluster : true }, actions: [ "shutdown" ] }

对于用户定义的角色,只有作用域为admin数据库的角色的权限才能具有此资源规范。

内部资源anyResource允许访问系统中的每个资源,仅供内部使用。除特殊情况外,请勿使用此资源。此资源的语法为{ anyResource: true }

← system.users Collection