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 Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Importante

Este comando tiene soporte limitado en los clústeres Flex y M0. Para obtener más información, consulta 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(
{
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 cuales devolver información.

El argumento usersInfo tiene múltiples formas según la información solicitada.usersInfo: <various> Véase.

showCredentials

booleano

Opcional. Establezca en true para mostrar el hash de la contraseña del usuario.

De forma predeterminada, este campo es false.

showCustomData

booleano

Opcional. Establezca en false para omitir el customData del usuario en la salida.

De forma predeterminada, este campo es true.

Nuevo en la versión 5.2.

showPrivileges

booleano

Opcional. Establézcalo en true para mostrar el conjunto completo de privilegios del usuario, incluida información ampliada sobre los roles heredados.

De forma predeterminada, este campo es false.

Si está visualizando todos los usuarios, no puede especificar este campo.

showAuthenticationRestrictions

booleano

Opcional. Establezca en true para mostrar las restricciones de autenticación del usuario.

De forma predeterminada, este campo es false.

Si está visualizando todos los usuarios, no puede especificar este campo.

filter

Documento

Opcional. Un documento que especifica las condiciones de la etapa para devolver información de los usuarios que coinciden con las condiciones del $match 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 donde se ejecuta el comando.

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

{ usersInfo: <username> }

Devuelve 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 especificado 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 tener privilegios que incluyan la viewUser acción en la base de datos del otro usuario.

puede devolver la siguiente información según las opciones usersInfo 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 existente en la base de datos actual, puede especificarlo solo por su nombre. Por ejemplo, si está en la home base de datos y existe un usuario llamado "Kari" en la home base de datos, puede 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, puede 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, utilice un documento de comando similar al siguiente:

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

Al ver todos los usuarios, puede 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 con SCRAM-SHA-1 credenciales. En concreto, el comando devuelve todos los usuarios de todas las bases de datos y, a continuación, utiliza la etapa para aplicarles el filtro $match especificado.

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

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

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

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 false en:

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