On this page
rolesInfo
在本页面
Definition
rolesInfo
- 返回指定角色(包括user-defined roles和built-in roles)的继承和特权信息。
rolesInfo命令还可以检索作用域为数据库的所有角色。
要匹配数据库上的单个角色,请使用以下形式:
{
rolesInfo: { role: <name>, db: <db> },
showPrivileges: <Boolean>,
showBuiltinRoles: <Boolean>
}
rolesInfo具有以下字段:
Field | Type | Description |
---|---|---|
rolesInfo |
字符串,文档,数组或整数 | 返回有关其信息的角色。有关指定角色的语法,请参见Behavior。 |
showPrivileges |
boolean | 可选的。将字段设置为true 以显示角色特权,包括从其他角色继承的特权和直接定义的特权。默认情况下,该命令仅返回该角色从中继承特权的角色,并且不返回特定特权。 |
showBuiltinRoles |
boolean | 可选的。当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
- 在其上定义角色的数据库。每个数据库都有built-in roles。数据库可能还具有user-defined roles。
rolesInfo.
isBuiltin
- 值
true
表示角色是built-in role。值false
表示角色是user-defined role。
- 值
rolesInfo.
roles
- 直接为此角色和定义角色的数据库提供特权的角色。
rolesInfo.
inheritedRoles
- 从该角色继承特权的所有角色。这包括rolesInfo.roles数组中的角色以及rolesInfo.roles数组中的角色继承特权的角色。所有特权均适用于当前角色。此字段中的文档列出了角色以及在其上定义它们的数据库。
rolesInfo.
privileges
- 该角色直接指定的特权;即数组不包含从其他角色继承的特权。默认情况下,输出不包含privileges字段。要包含该字段,请在运行rolesInfo命令时指定
showPrivileges: true
。
- 该角色直接指定的特权;即数组不包含从其他角色继承的特权。默认情况下,输出不包含privileges字段。要包含该字段,请在运行rolesInfo命令时指定
每个特权文档都指定了资源上允许的resources和actions。
rolesInfo.
inheritedPrivileges
- 该角色授予的所有特权,包括从其他角色继承的特权。默认情况下,输出不包含inheritedPrivileges字段。要包含该字段,请在运行rolesInfo命令时指定
showPrivileges: true
。
- 该角色授予的所有特权,包括从其他角色继承的特权。默认情况下,输出不包含inheritedPrivileges字段。要包含该字段,请在运行rolesInfo命令时指定
每个特权文档都指定了资源上允许的resources和actions。
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
}
)