文档菜单
文档首页
/
MongoDB 手册
/ / /

rolesInfo

在本页

  • 定义
  • 兼容性
  • 语法
  • 命令字段
  • 行为
  • 返回单个角色的信息
  • 返回多个角色的信息
  • 返回数据库中所有角色的信息
  • 所需访问权限
  • 输出
  • 示例
  • 查看单个角色的信息
  • 查看多个角色的信息
  • 查看数据库中所有用户定义的角色
  • 查看数据库中所有用户定义和内置的角色
  • 查看角色的认证限制
rolesInfo

返回指定角色的继承和权限信息,包括用户定义的角色和内置角色。用户定义的角色内置角色

命令rolesInfo 也可以检索数据库范围内的所有角色。

此命令在以下环境中的部署中可用

  • MongoDB Atlas:云中MongoDB部署的全面托管服务

注意

此命令在所有MongoDB Atlas集群中都受支持。有关Atlas对所有命令的支持信息,请参阅不受支持的命令。

该命令具有以下语法

db.runCommand(
{
rolesInfo: { role: <name>, db: <db> },
showAuthenticationRestrictions: <Boolean>,
showBuiltinRoles: <Boolean>,
showPrivileges: <Boolean>,
comment: <any>
}
)

该命令采用以下字段

字段
类型
描述
rolesInfo
字符串、文档、数组或整数
要返回其信息的作用域。有关指定角色的语法,请参阅行为。
showAuthenticationRestrictions
布尔值

可选。将此字段设置为true以在输出中包含身份验证限制。身份验证限制指示具有此角色的用户可以连接到的IP地址。

默认情况下,此字段为false,意味着rolesInfo输出不包括身份验证限制。

showBuiltinRoles
布尔值
可选。当rolesInfo字段设置为1时,将showBuiltinRoles设置为true以在输出中包含内置角色。默认情况下,此字段设置为false,并且rolesInfo: 1的输出仅显示用户定义的角色
showPrivileges
布尔值
可选。将字段设置为true以显示角色权限,包括从其他角色继承的权限和直接定义的权限。默认情况下,该命令仅返回继承此角色的权限,而不返回特定的权限。
comment
任何

可选。用户提供的注释,可附加到该命令。一旦设置,该注释将在以下位置显示此命令的记录

注释可以是任何有效的 BSON 类型(字符串、整数、对象、数组等)。

要指定当前数据库中的角色,通过其名称指定该角色

{ rolesInfo: "<rolename>" }

要指定其他数据库中的角色,通过指定角色和数据库的文档指定该角色

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

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

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

要指定命令运行的数据库中的所有角色,请指定 rolesInfo: 1。默认情况下,MongoDB 显示数据库中的所有 用户定义的角色。要包括 内置角色,请包括参数值对 showBuiltinRoles: true

{ rolesInfo: 1, showBuiltinRoles: true }

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

rolesInfo.role

角色的名称。

rolesInfo.db

定义角色的数据库。每个数据库都有内置角色。数据库也可能有用户定义角色

rolesInfo.isBuiltin

值为 true 表示该角色是 内置角色。值为 false 表示该角色是 用户定义角色

rolesInfo.roles

直接赋予此角色权限的角色和定义这些角色的数据库。

rolesInfo.inheritedRoles

此角色继承权限的所有角色。这包括rolesInfo.roles数组中的角色,以及rolesInfo.roles数组中的角色继承权限的角色。所有权限都应用于当前角色。此字段中的文档列出角色及其定义的数据库。

rolesInfo.privileges

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

每个权限文档指定了允许在资源上执行的操作和资源。

rolesInfo.inheritedPrivileges

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

每个权限文档指定了允许在资源上执行的操作和资源。

本节中的示例展示了如何使用 rolesInfo 命令来

以下命令返回在 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
}
)

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

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

示例输出(为可读性缩短)

{
roles: [
{
_id: 'products.associate',
role: 'associate',
db: 'products',
privileges: [
{
resource: { db: 'products', collection: '' },
actions: [ 'bypassDocumentValidation' ]
}
],
roles: [ { role: 'readWrite', db: 'products' } ],
isBuiltin: false,
inheritedRoles: [ { role: 'readWrite', db: 'products' } ],
inheritedPrivileges: [
{
resource: { db: 'products', collection: '' },
actions: [ 'bypassDocumentValidation' ]
},
{
resource: { db: 'products', collection: '' },
actions: [
'changeStream',
'collStats',
'compactStructuredEncryptionData',
...
]
},
...
]
}
],
ok: 1
}

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

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

示例输出(为可读性缩短)

{
roles: [
{
role: 'enableSharding',
db: 'products',
isBuiltin: true,
roles: [],
inheritedRoles: []
},
{
role: 'userAdmin',
db: 'products',
isBuiltin: true,
roles: [],
inheritedRoles: []
},
{
role: 'read',
db: 'products',
isBuiltin: true,
roles: [],
inheritedRoles: []
},
...
],
ok: 1
}

以下操作返回products数据库上的所有用户定义角色,包括身份验证限制

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

示例输出

{
roles: [
{
_id: 'products.associate',
role: 'associate',
db: 'products',
roles: [ { role: 'readWrite', db: 'products' } ],
authenticationRestrictions: [
[ { clientSource: [ '198.51.100.0' ] } ]
],
isBuiltin: false,
inheritedRoles: [ { role: 'readWrite', db: 'products' } ],
inheritedAuthenticationRestrictions: [
[ { clientSource: [ '198.51.100.0' ] } ]
]
}
],
ok: 1
}

返回

revokeRolesFromRole