Definición
Compatibilidad
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 compatibilidad limitada con los clústeres0 M, M2 y5 M. Para obtener más información, 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.
Sintaxis
El comando tiene la siguiente sintaxis:
{ usersInfo: <various>, showCredentials: <Boolean>, showPrivileges: <Boolean>, showAuthenticationRestrictions: <Boolean>, filter: <document>, comment: <any> }
Campos de comandos
El comando toma los siguientes campos:
Campo | Tipo | Descripción |
|---|---|---|
| varios | El/los usuario(s) sobre los cuales devolver información. El argumento |
| booleano | Opcional. Configure este campo como verdadero para mostrar el hash de la contraseña del usuario. Por defecto, este campo es |
| booleano | Opcional. Establézcalo en De forma predeterminada, este campo es Si está visualizando todos los usuarios, no puede especificar este campo. |
| booleano | Opcional. Establezca en De forma predeterminada, este campo es Si está visualizando todos los usuarios, no puede especificar este campo. |
| Documento | Opcional. Un documento que especifica las condiciones de la etapa para devolver información de los usuarios que coinciden con las condiciones del |
| 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>
{ usersInfo: <various> }
El argumento de usersInfo tiene múltiples formas según la información solicitada:
Argument | Devuelve |
|---|---|
| Devuelve información sobre los usuarios en la base de datos donde se ejecuta el comando.
|
| Devuelve información sobre un usuario específico que existe en la base de datos donde se ejecuta el comando.
|
| 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. |
| Devuelve información sobre los usuarios en todas las bases de datos. |
Acceso requerido
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.
Salida
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 }
Ejemplos
Ver usuarios específicos
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 } )
Ver varios usuarios
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 } )
Ver todos los usuarios de una base de datos
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.
Ver todos los usuarios de una base de datos que coinciden con el filtro especificado
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.
Ver todos los usuarios con SCRAM-SHA-1 credenciales
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.