On this page
Resource Document
在本页面
资源文档指定特权允许actions的资源。
数据库和/或集合资源
要指定数据库和/或集合,请使用以下语法:
{ db: <database>, collection: <collection> }
将数据库的集合指定为资源
如果资源文档将db和collection字段都作为非空字符串,则该资源是指定数据库中的指定集合。例如,以下文档指定products数据库中inventory集合的资源:
{ db: "products", collection: "inventory" }
对于以非admin数据库为范围的用户定义角色,其特权的资源说明必须指定与该角色相同的数据库。范围为admin数据库的用户定义角色可以指定其他数据库。
指定数据库作为资源
如果只有collection字段是空字符串(""),则资源是指定的数据库,但不包括system collections。例如,以下资源文档指定test数据库的资源,但不包括系统集合:
{ db: "test", collection: "" }
对于以非admin数据库为范围的用户定义角色,其特权的资源说明必须指定与该角色相同的数据库。范围为admin数据库的用户定义角色可以指定其他数据库。
Note
当您将数据库指定为资源时,系统集合将被排除,除非您明确命名它们,如下所示:
{ db: "test", collection: "system.js" }
系统集合包括但不限于以下各项:
system.users Collection在
admin数据库中system.roles Collection在
admin数据库中
将跨数据库的集合指定为资源
如果只有db字段为空字符串(""),则该资源是所有数据库中具有指定名称的所有集合。例如,以下文档指定所有数据库中所有accounts集合的资源:
{ db: "", collection: "accounts" }
对于用户定义的角色,只有作用于admin数据库的角色才能具有此资源规范的特权。
在所有数据库中指定所有非系统集合
如果db和collection字段均为空字符串(""),则资源是所有数据库中的所有集合,但不包括system collections:
{ db: "", collection: "" }
对于用户定义的角色,只有作用于admin数据库的角色才能具有此资源规范的特权。
Cluster Resource
要将群集指定为资源,请使用以下语法:
{ cluster : true }
使用cluster资源来执行影响系统状态的操作,而不是对特定的数据库或集合集进行操作。此类动作的示例是shutdown,replSetReconfig和addShard。例如,以下文档授予cluster上的动作shutdown。
{ resource: { cluster : true }, actions: [ "shutdown" ] }
对于用户定义的角色,只有作用于admin数据库的角色才能具有此资源规范的特权。
anyResource
内部资源anyResource可以访问系统中的每个资源,仅供内部使用。 **除非特殊情况,否则请勿使用此资源。此资源的语法是{ anyResource: true }。