Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

rolesInfo (comando de base de datos)

rolesInfo

Devuelve información sobre la herencia y los privilegios de los roles especificados, incluyendo tanto Roles definidos por el usuario y roles integrados.

La rolesInfo el comando también puede recuperar todos los roles limitados a una base de datos.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

El comando tiene la siguiente sintaxis:

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

El comando toma los siguientes campos:

Campo
Tipo
Descripción

rolesInfo

string, documento, arreglo o entero

El(los) rol(es) sobre el(los) cual(es) devolver información. Para conocer la sintaxis para especificar los roles, consulte Comportamiento.

showAuthenticationRestrictions

booleano

opcional. Establezca este campo en true para incluir restricciones de autenticación en la salida. Las restricciones de autenticación indican las direcciones IP a las que los usuarios con este rol pueden conectarse y desconectarse.

De forma predeterminada, este campo es false, lo que significa que la salida rolesInfo no incluye restricciones de autenticación.

showBuiltinRoles

booleano

opcional. Cuando el campo rolesInfo esté establecido en 1, establezca showBuiltinRoles en true para incluir roles integrados en el informe. Por defecto, este campo se establece en false y la salida para rolesInfo: 1 solo muestra roles definidos por el usuario.

showPrivileges

booleano

Opcional. Configure el campo como true para mostrar los privilegios del rol, incluyendo tanto los heredados de otros roles como los definidos directamente. De forma predeterminada, el comando solo devuelve los roles de los cuales este rol hereda privilegios y no devuelve privilegios específicos.

comment

any

Opcional. Un comentario proporcionado por el usuario para adjuntar a este comando. Una vez configurado, este comentario aparece junto a los registros de este comando en las siguientes ubicaciones:

Un comentario puede ser de cualquier tipo BSON válido (string, objeto, arreglo, etc.).

Para especificar un rol de la base de datos actual, especifique el rol por su nombre:

{ rolesInfo: "<rolename>" }

Para especificar un rol de otra base de datos, especifique el rol mediante un documento que especifique el rol y la base de datos:

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

Para especificar varios roles, use una matriz. Especifique cada rol de la matriz como un documento o una cadena. Use una cadena solo si el rol existe en la base de datos donde se ejecuta el comando:

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

Para especificar todos los roles en la base de datos donde se ejecuta el comando, especifique rolesInfo: 1. Por defecto, MongoDB muestra todos los roles definidos por el usuario en la base de datos. Para incluir también roles integrados, incluyes el par de valor de parámetro showBuiltinRoles: true:

{ rolesInfo: 1, showBuiltinRoles: true }

Para ver la información de un rol, debe tener el rol otorgado explícitamente o debe tener la viewRole acción en la base de datos del rol.

rolesInfo.role

El nombre del rol.

rolesInfo.db

La base de datos donde se define el rol. Cada base de datos tiene roles predefinidos. Una base de datos también puede tener roles definidos por el usuario.

rolesInfo.isBuiltin

Un valor de true indica que el rol es un rol incorporado. Un valor de false indica que el rol es un rol definido por el usuario.

rolesInfo.roles

Los roles que proporcionan directamente privilegios a este rol y las bases de datos en las que se definen los roles.

rolesInfo.inheritedRoles

Todos los roles de los que este rol hereda privilegios. Esto incluye los roles en el arreglo rolesInfo.roles así como los roles de los que los roles en el arreglo rolesInfo.roles heredan privilegios. Todos los privilegios se aplican al rol actual. Los documentos en este campo enumeran los roles y las bases de datos en las que están definidos.

rolesInfo.privileges

Los privilegios especificados directamente por este rol; es decir, el arreglo excluye privilegios heredados de otros roles. Por defecto, la salida no incluye el campo privileges. Para incluir el campo, especifique showPrivileges: true al ejecutar el comando rolesInfo.

Cada documento de privilegio especifica los recursos y las acciones permitidas sobre los recursos.

rolesInfo.inheritedPrivileges

Todos los privilegios concedidos por este rol, incluidos los heredados de otros roles. Por defecto, la salida no incluye el campo inheritedPrivileges. Para incluir el campo, especifica showPrivileges: true al ejecutar el comando rolesInfo.

Cada documento de privilegio especifica los recursos y las acciones permitidas sobre los recursos.

Los ejemplos de esta sección muestran cómo utilizar el comando rolesInfo para:

El siguiente comando devuelve la información sobre la herencia de roles para el rol associate definido en la base de datos products:

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

El siguiente comando devuelve la información de herencia de roles para el rol siteManager en la base de datos en la que se ejecuta el comando:

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

El siguiente comando devuelve tanto la herencia del rol como los privilegios para el rol associate definido en la products base de datos:

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

El siguiente comando devuelve información para dos roles en dos bases de datos diferentes:

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

Se devuelven los siguientes tanto la herencia de roles como los privilegios:

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

La siguiente operación devuelve todos los roles definidos por el usuario en la base de datos donde se ejecuta el comando e incluye privilegios:

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

Ejemplo de salida (abreviado para facilitar la lectura):

{
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
}

La siguiente operación devuelve todos los roles en la base de datos en la que se ejecuta el comando, incluidos los roles integrados y definidos por el usuario:

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

Ejemplo de salida (abreviado para facilitar la lectura):

{
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
}

La siguiente operación devuelve todos los roles definidos por el usuario en la base de datos products e incluye restricciones de autenticación:

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

Ejemplo de salida:

{
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
}

Volver

revokeRolesFromRole