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
/ /

usersInfo (comando de base de datos)

usersInfo

Devuelve información sobre uno o más usuarios.

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

  • 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.

Importante

Este comando no es compatible en los clústeres de MongoDB Atlas. Para información sobre el soporte Atlas para todos los comandos, consulta Comandos no admitidos.

El comando tiene la siguiente sintaxis:

db.runCommand(
{
usersInfo: <various>,
showCredentials: <Boolean>,
showCustomData: <Boolean>,
showPrivileges: <Boolean>,
showAuthenticationRestrictions: <Boolean>,
filter: <document>,
comment: <any>
}
)

El comando toma los siguientes campos:

Campo
Tipo
Descripción

usersInfo

varios

El/los usuario(s) sobre los que se devolverá información.

El argumento de usersInfo tiene múltiples formas según la información solicitada. Ver usersInfo: <various>.

showCredentials

booleano

opcional. Configura en true para mostrar la contraseña encriptada del usuario.

Por defecto, este campo es false.

showCustomData

booleano

opcional. Configúralo en false para omitir el customData del usuario en la salida.

Por defecto, este campo es true.

Nuevo en la versión 5.2.

showPrivileges

booleano

opcional. Configúralo en true para mostrar el conjunto completo de privilegios del usuario, incluyendo información ampliada sobre los roles heredados.

Por defecto, este campo es false.

Si ves todos los usuarios, no puedes especificar este campo.

showAuthenticationRestrictions

booleano

opcional. Establece en true para mostrar las restricciones de autenticación del usuario.

Por defecto, este campo es false.

Si ves todos los usuarios, no puedes especificar este campo.

filter

Documento

opcional. Un documento que especifica $match las condiciones para devolver información sobre los usuarios que cumplan con las condiciones del filtro.

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.).

{ usersInfo: <various> }

El argumento de usersInfo tiene múltiples formas según la información solicitada:

Argument
Devuelve

{ usersInfo: 1 }

Devuelve información sobre los usuarios en la base de datos en la que se ejecuta el comando.

mongosh proporciona el ayudante para esta invocación del db.getUsers() comando.

{ usersInfo: <username> }

Devolver información sobre un usuario específico que existe en la base de datos donde se ejecuta el comando.

mongosh proporciona el ayudante para esta invocación del db.getUser() comando.

{ usersInfo: { user: <name>, db: <db> } }

Devuelve información sobre el usuario, especificada por el nombre y la base de datos.

{ usersInfo: [ { user: <name>, db: <db> }, ... ] }
{ usersInfo: [ <username1>, ... ] }

Devuelve información sobre los usuarios especificados.

{ forAllDBs: true }

Devuelve información sobre los usuarios en todas las bases de datos.

Los usuarios siempre pueden ver su propia información.

Para ver la información de otro usuario, el usuario que ejecuta el comando debe contar con privilegios que incluyan la acción viewUser en la base de datos del otro usuario.

La siguiente información puede ser devuelta por usersInfo, dependiendo de las opciones especificadas:

{
"users" : [
{
"_id" : "<db>.<username>",
"userId" : <UUID>,
"user" : "<username>",
"db" : "<db>",
"mechanisms" : [ ... ],
"customData" : <document>,
"roles" : [ ... ],
"credentials": { ... }, // only if showCredentials: true
"inheritedRoles" : [ ... ], // only if showPrivileges: true or showAuthenticationRestrictions: true
"inheritedPrivileges" : [ ... ], // only if showPrivileges: true or showAuthenticationRestrictions: true
"inheritedAuthenticationRestrictions" : [ ] // only if showPrivileges: true or showAuthenticationRestrictions: true
"authenticationRestrictions" : [ ... ] // only if showAuthenticationRestrictions: true
},
...
],
"ok" : 1
}

Para ver información y privilegios, pero no las credenciales, del usuario "Kari" definido en la base de datos "home", ejecute el siguiente comando:

db.runCommand(
{
usersInfo: { user: "Kari", db: "home" },
showPrivileges: true
}
)

Para ver un usuario que existe en la base de datos actual, puedes especificar solo el nombre del usuario. Por ejemplo, si estás en la base de datos home y tienes un usuario llamado "Kari" en la base de datos home, puedes ejecutar el siguiente comando:

db.getSiblingDB("home").runCommand(
{
usersInfo: "Kari",
showPrivileges: true
}
)

Para ver la información de varios usuarios, utilice una matriz, con o sin los campos opcionales showPrivileges y showCredentials. Por ejemplo:

db.runCommand( {
usersInfo: [ { user: "Kari", db: "home" }, { user: "Li", db: "myApp" } ],
showPrivileges: true
} )

Para ver todos los usuarios en la base de datos en la que se ejecuta el comando, utilice un documento de comando similar al siguiente:

db.runCommand( { usersInfo: 1 } )

Al ver todos los usuarios, puedes especificar la opción showCredentials pero no las opciones showPrivileges o showAuthenticationRestrictions.

El comando puede aceptar usersInfo un filter documento para devolver información de los usuarios que coincidan con la condición de filtro.

Para ver todos los usuarios en la base de datos actual que tienen el rol especificado, utiliza un documento de comando similar al siguiente:

db.runCommand( { usersInfo: 1, filter: { roles: { role: "root", db: "admin" } } } )

Al ver todos los usuarios, puedes especificar la opción showCredentials pero no las opciones showPrivileges o showAuthenticationRestrictions.

El comando puede aceptar usersInfo un filter documento para devolver información de los usuarios que coincidan con la condición de filtro.

La siguiente operación devuelve todos los usuarios que tienen credenciales SCRAM-SHA-1. Específicamente, el comando devuelve todos los usuarios de todas las bases de datos y luego utiliza la etapa de $match para aplicar el filtro especificado a los usuarios.

db.runCommand( { usersInfo: { forAllDBs: true}, filter: { mechanisms: "SCRAM-SHA-1" } } )

Al ver todos los usuarios, puedes especificar la opción showCredentials pero no las opciones showPrivileges o showAuthenticationRestrictions.

Novedad en la versión 5.2: Para omitir los datos personalizados de los usuarios en la salida usersInfo establece la opción showCustomData en false.

Utilice el comando para crear un usuario createUser llamado accountAdmin01 en la products base de datos:

db.getSiblingDB("products").runCommand( {
createUser: "accountAdmin01",
pwd: passwordPrompt(),
customData: { employeeId: 12345 },
roles: [ { role: 'readWrite', db: 'products' } ]
} )

El usuario contiene un campo customData de { employeeId: 12345 }.

Para recuperar el usuario pero omitir los datos personalizados de la salida, ejecute usersInfo con showCustomData establecido en false:

db.getSiblingDB("products").runCommand ( {
usersInfo: "accountAdmin01",
showCustomData: false
} )

Ejemplo de salida:

{
users: [
{
_id: 'products.accountAdmin01',
userId: UUID("0955afc1-303c-4683-a029-8e17dd5501f4"),
user: 'accountAdmin01',
db: 'products',
roles: [ { role: 'readWrite', db: 'products' } ],
mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
}
],
ok: 1
}

Volver

updateUser

En esta página