Docs Menu
Docs Home
/ /

Usuarios en implementaciones autogestionadas

Para autenticar un cliente en MongoDB, se debe añadir el usuario correspondiente a MongoDB.

Puedes agregar un usuario con el db.createUser() método que utiliza mongosh. El primer usuario que cree debe tener privilegios para crear otros usuarios. Tanto userAdmin el rol como el otorgan el privilegio para crear otros usuarios.userAdminAnyDatabase

Tip

Puedes otorgar privilegios a un usuario asignándole roles cuando lo crees. También puedes otorgar o revocar roles, así como actualizar contraseñas, mediante la actualización de los usuarios existentes. Para obtener una lista completa de los métodos de gestión de usuarios, consulta Gestión de usuarios.

Un usuario se identifica unívocamente por su nombre y la base de datos de autenticación asociada. MongoDB asocia un usuario con un userId único en el momento de la creación en MongoDB.

Los usuarios gestionados por LDAP creados en un servidor LDAP no tienen un documento asociado en la colección system.users y, por tanto, no tienen un campo userId asociado.

Cuando se añade un usuario, este se crea en una base de datos específica. La base de datos en la que se crea el usuario es la base de datos de autenticación para el usuario.

Sin embargo, los privilegios de un usuario no se limitan a su base de datos de autenticación. Por lo tanto, un usuario puede tener privilegios en diferentes bases de datos. Para obtener más información sobre los roles, se puede consultar Control de accesos basado en roles en implementaciones autogestionadas.

El nombre de un usuario y la base de datos de autenticación sirven como identificador único para ese usuario. MongoDB asocia un usuario con un userId único en el momento de la creación en MongoDB. Sin embargo, los usuarios gestionados por LDAP creados en un servidor LDAP no tienen un documento asociado en la colección system.users y, por tanto, no tienen un campouserId asociado.

Si dos usuarios tienen el mismo nombre pero se crean en bases de datos diferentes, son dos usuarios distintos. Si se desea tener un solo usuario con permisos en varias bases de datos, se debe crear un solo usuario con un rol para cada base de datos aplicable.

Para los usuarios creados en MongoDB, MongoDB almacena toda la información del usuario, incluidos name, password y la authentication database del usuario, en la colección system.users en la base de datos admin.

No modifiques esta colección directamente. Para gestionar usuarios, utiliza los comandos de gestión de usuarios designados.

Para crear usuarios para un clúster particionado, se debe hacer una conexión a una instancia mongos y añadir los usuarios. Para autenticarse como usuario creado en una instanciamongos, se debe autenticar a través de una instanciamongos.

En los clústeres particionados, MongoDB almacena los datos de configuración de los usuarios en la base de datos admin de los servidores de configuración.

Algunas operaciones de mantenimiento, como compact o rs.reconfig(), requieren conexiones directas a particiones concretas de un clúster. Para realizar estas operaciones, se debe conectar directamente a la partición y autenticarse como usuario administrativo local de la partición.

Para crear un usuario administrativo local de partición, se debe conectar directamente al primario de la partición y crear el usuario. Para obtener instrucciones sobre cómo crear un usuario administrador local de partición, se puede consultar el tutorial Implementar un clúster particionado autogestionado con autenticación mediante archivo de claves.

MongoDB almacena a los usuarios locales de la partición en la base de datos admin de la partición misma. Estos usuarios locales de particiones son independientes de los usuarios agregados al clúster a través de un mongos. Los usuarios locales de la partición son locales a la partición y mongos no puede acceder a ellos.

A partir de MongoDB 8.0, se puede utilizar el rol directShardOperations para realizar operaciones de mantenimiento que requieren ejecutar comandos directamente contra un fragmento.

Las conexiones directas a una partición solo deben usarse para el mantenimiento y la configuración específicos de la partición. En general, los clientes deben conectarse al clúster particionado a través de mongos.

Advertencia

Ejecutar comandos usando el rol de directShardOperations puede hacer que su clúster deje de funcionar correctamente y puede causar corrupción de datos. Utilice el rol de directShardOperations solo para fines de mantenimiento o bajo la orientación del soporte de MongoDB. Una vez que haya terminado de realizar las operaciones de mantenimiento, deje de usar el rol de directShardOperations.

Volver

Habilitar el Control de Acceso

En esta página