Docs Menu
Docs Home
/ /
Gestión de Roles

rolesInfo (comando de base de datos)

rolesInfo

Devuelve información de herencia y privilegios para roles específicos, incluidos ambos Roles definidos por el usuario y roles integrados.

El comando también puede recuperar todos los roles incluidos en una base de rolesInfo 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

cadena, documento, matriz o entero

Los roles sobre los que se devolverá información. Para conocer la sintaxis para especificar roles, consulte Comportamiento.

showAuthenticationRestrictions

booleano

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

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

showBuiltinRoles

booleano

Opcional. Si el rolesInfo campo está configurado 1 en, configure showBuiltinRoles en true para incluir los roles integrados en la salida. De forma predeterminada, este campo está configurado en false y la salida para rolesInfo: 1 solo muestra los 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,rolesInfo: 1 especifique. De forma predeterminada, MongoDB muestra todos los roles definidos por el usuario en la base de datos. Para incluir también los roles integrados, incluya el par showBuiltinRoles: true parámetro-valor:

{ 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 integrado. Un valor de false indica que el rol es un rol definido por el usuario.

rolesInfo.roles

Los roles que proporcionan privilegios directamente 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 de la matriz, así como los roles rolesInfo.roles rolesInfo.roles de los que los roles de la matriz heredan privilegios. Todos los privilegios se aplican al rol actual. Los documentos de 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, la matriz excluye los privilegios heredados de otros roles. Por defecto, la salida no incluye el campo. Para incluirlo,privileges especifique showPrivileges: true al ejecutar el rolesInfo comando.

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

rolesInfo.inheritedPrivileges

Todos los privilegios otorgados por este rol, incluidos los heredados de otros roles. De forma predeterminada, la salida no incluye el inheritedPrivileges campo. Para incluirlo, especifique showPrivileges: true al ejecutar el rolesInfo comando.

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 de herencia de rol 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 rol 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" }
]
}
)

Lo siguiente devuelve tanto la herencia del rol 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 en la que 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

revocarRolesDeRol