Para autenticar un cliente en MongoDB, se debe añadir el usuario correspondiente a MongoDB.
Gestión de usuarios
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
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.
Usuarios gestionados por LDAP
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.
Base de datos de autenticación
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.
Datos de usuario centralizados
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.
Usuarios de clúster particionado
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.
Usuarios locales de la partición
Algunas operaciones de mantenimiento,cleanupOrphaned como, u, requieren conexiones directas a fragmentos específicos de un clúster fragmentado. compact Para realizar estas operaciones, debe conectarse directamente al fragmento rs.reconfig() y autenticarse como usuario administrativo local del fragmento.
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.
Las conexiones directas a un fragmento solo deben usarse para el mantenimiento y la configuración específicos del fragmento o para cargas de trabajo de análisis específicas. En general, los clientes deben conectarse al clúster fragmentado a través mongos de.