rolesInfo
在本页
定义
兼容性
此命令在以下环境中的部署中可用
MongoDB Atlas:云中MongoDB部署的全面托管服务
注意
此命令在所有MongoDB Atlas集群中都受支持。有关Atlas对所有命令的支持信息,请参阅不受支持的命令。
MongoDB Enterprise:基于订阅、自主管理的MongoDB版本
MongoDB Community:源代码开放、免费使用和自主管理的MongoDB版本
语法
该命令具有以下语法
db.runCommand( { rolesInfo: { role: <name>, db: <db> }, showAuthenticationRestrictions: <Boolean>, showBuiltinRoles: <Boolean>, showPrivileges: <Boolean>, comment: <any> } )
命令字段
该命令采用以下字段
字段 | 类型 | 描述 |
---|---|---|
rolesInfo | 字符串、文档、数组或整数 | 要返回其信息的作用域。有关指定角色的语法,请参阅行为。 |
showAuthenticationRestrictions | 布尔值 | 可选。将此字段设置为 默认情况下,此字段为 |
showBuiltinRoles | 布尔值 | |
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 }
所需权限
输出
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 }