rolesInfo

在本页面

Definition

rolesInfo命令还可以检索作用域为数据库的所有角色。

要匹配数据库上的单个角色,请使用以下形式:

{
  rolesInfo: { role: <name>, db: <db> },
  showPrivileges: <Boolean>,
  showBuiltinRoles: <Boolean>
}

rolesInfo具有以下字段:

FieldTypeDescription
rolesInfo字符串,文档,数组或整数返回有关其信息的角色。有关指定角色的语法,请参见Behavior
showPrivilegesboolean可选的。将字段设置为true以显示角色特权,包括从其他角色继承的特权和直接定义的特权。默认情况下,该命令仅返回该角色从中继承特权的角色,并且不返回特定特权。
showBuiltinRolesboolean可选的。当rolesInfo字段设置为1时,请将showBuiltinRoles设置为true以在输出中包括built-in roles。默认情况下,此字段设置为false,并且rolesInfo: 1的输出仅显示user-defined roles

Behavior

返回单个角色的信息

要从当前数据库中指定角色,请按名称指定角色:

{ rolesInfo: "<rolename>" }

要从另一个数据库指定角色,请通过指定角色和数据库的文档来指定角色:

{ rolesInfo: { role: "<rolename>", db: "<database>" } }

返回多个角色的信息

要指定多个角色,请使用数组。将数组中的每个角色指定为文档或字符串。仅当角色在运行命令的数据库上存在时才使用字符串:

{
  rolesInfo: [
     "<rolename>",
     { role: "<rolename>", db: "<database>" },
     ...
  ]
}

返回数据库中所有角色的信息

要指定运行命令的数据库中的所有角色,请指定rolesInfo: 1。默认情况下,MongoDB 显示数据库中的所有user-defined roles。要同时包含built-in roles,请包含参数值对showBuiltinRoles: true

{ rolesInfo: 1, showBuiltinRoles: true }

Required Access

要查看角色的信息,必须为您明确授予该角色或在角色的数据库上具有viewRole action

Output

  • rolesInfo. role

    • 角色名称。
  • rolesInfo. db

  • rolesInfo. isBuiltin

  • rolesInfo. roles

    • 直接为此角色和定义角色的数据库提供特权的角色。
  • rolesInfo. inheritedRoles

    • 从该角色继承特权的所有角色。这包括rolesInfo.roles数组中的角色以及rolesInfo.roles数组中的角色继承特权的角色。所有特权均适用于当前角色。此字段中的文档列出了角色以及在其上定义它们的数据库。
  • rolesInfo. privileges

    • 该角色直接指定的特权;即数组不包含从其他角色继承的特权。默认情况下,输出不包含privileges字段。要包含该字段,请在运行rolesInfo命令时指定showPrivileges: true

每个特权文档都指定了资源上允许的resourcesactions

  • rolesInfo. inheritedPrivileges
    • 该角色授予的所有特权,包括从其他角色继承的特权。默认情况下,输出不包含inheritedPrivileges字段。要包含该字段,请在运行rolesInfo命令时指定showPrivileges: true

每个特权文档都指定了资源上允许的resourcesactions

Examples

查看单个角色的信息

以下命令返回在products数据库中定义的角色associate的角色继承信息:

db.runCommand(
    {
      rolesInfo: { role: "associate", db: "products" }
    }
)

以下命令在运行该命令的数据库上返回角色siteManager的角色继承信息:

db.runCommand(
    {
      rolesInfo: "siteManager"
    }
)

以下命令返回在products数据库中定义的角色associate的角色继承和特权。

db.runCommand(
    {
      rolesInfo: { role: "associate", db: "products" },
      showPrivileges: true
    }
)

查看多个角色的信息

以下命令返回两个不同数据库上两个角色的信息:

db.runCommand(
    {
      rolesInfo: [
         { role: "associate", db: "products" },
         { role: "manager", db: "resources" }
      ]
    }
)

以下代码返回角色继承和特权。

db.runCommand(
    {
      rolesInfo: [
         { role: "associate", db: "products" },
         { role: "manager", db: "resources" }
      ],
      showPrivileges: true
    }
)

查看数据库的所有用户定义角色

以下操作将在运行命令的数据库上返回所有user-defined roles,并包含特权:

db.runCommand(
    {
      rolesInfo: 1,
      showPrivileges: true
    }
)

查看数据库的所有用户定义和内置角色

以下操作返回运行命令的数据库上的所有角色,包括内置角色和用户定义角色:

db.runCommand(
    {
      rolesInfo: 1,
      showBuiltinRoles: true
    }
)