MongoDB emplea el Control de Acceso Basado en Roles (RBAC) para gestionar el acceso a un sistema MongoDB. A cada usuario se le otorgan uno o más Roles que determinan el acceso del usuario a los recursos y operaciones de la base de datos. Fuera de las asignaciones de roles, el usuario no tiene acceso al sistema.
Habilitar el Control de Acceso
MongoDB no habilita el control de acceso de forma predeterminada. Puede habilitar la autorización mediante --autho la security.authorization configuración. Al habilitar la autenticación interna, también se habilita la autorización del cliente.
Una vez que se activa el control de acceso, los usuarios deben autenticarse.
Roles
Un rol concede privilegios para realizar las acciones especificadas en un recurso. Cada privilegio está especificado explícitamente en el rol o es heredado de otro rol o de ambos.
Acceso
Los roles nunca limitan privilegios. Si un usuario tiene dos roles, el rol con mayor acceso tiene prioridad.
Por ejemplo, si otorgas el rol de read en una base de datos a un usuario que ya tiene el rol de readWriteAnyDatabase, la concesión de read no revoca el acceso de escritura en la base de datos.
Para revocar el rol de un usuario, utiliza el comando revokeRolesFromUser.
Restricciones de autenticación
Los roles pueden imponer restricciones de autenticación a los usuarios, exigiendo que se conecten desde rangos de direcciones IP de origen y destino especificados.
Para obtener más información, consulta Restricciones de autenticación.
Privilegios
Un privilegio consta de un recurso especificado y las acciones permitidas sobre el recurso.
Un recurso es una base de datos, una colección, un set de colecciones o un clúster. Si el recurso es el clúster, las acciones afiliadas afectan al estado del sistema en lugar de a una base de datos o colección específica. Para obtener información sobre los documentos de recursos, consulta Documento de recursos sobre implementaciones autogestionadas.
Una acción especifica la operación permitida en el recurso. Para ver las acciones disponibles, consulta Acciones de privilegio.
Privilegios heredados
Un rol puede incluir uno o más roles existentes en su definición; en tal caso, el rol hereda todos los privilegios de los roles incluidos.
Un rol puede heredar privilegios de otros roles en su base de datos. Un rol creado en la base de datos admin puede heredar privilegios de roles en cualquier base de datos.
Ver los privilegios del rol
Puede ver los privilegios de un rol emitiendo el comando rolesInfo con los campos showPrivileges y showBuiltinRoles ambos configurados en true.
Usuarios y Roles
Puedes asignar roles a los usuarios durante la creación de usuarios. También puedes actualizar a los usuarios existentes para otorgar o revocar roles. Para obtener una lista completa de los métodos de gestión de usuarios, consulta Gestión de usuarios
Un usuario al que se le asigna un rol recibe todos los privilegios de ese rol. Un usuario puede tener múltiples roles. Al asignar roles a un usuario en varias bases de datos, un usuario creado en una base de datos puede tener permisos para actuar en otras bases de datos.
Nota
El primer usuario creado en la base de datos debe ser un administrador de usuario que tenga los privilegios para gestionar a otros usuarios. Consulta Activar el control de acceso en implementaciones autogestionadas.
Roles incorporados y roles definidos por el usuario
MongoDB proporciona roles de funcionalidad incorporada que ofrecen un conjunto de privilegios comúnmente necesarios en un sistema de gestión de bases de datos.
Si estos roles de funcionalidad incorporada no pueden proporcionar el conjunto de privilegios deseado, MongoDB proporciona métodos para crear y modificar roles definidos por el usuario.
Autorización LDAP
Nota
A partir de MongoDB 8.0, la autenticación y autorización de LDAP están obsoletas. LDAP está disponible y continuará operando sin cambios durante toda la vida útil de MongoDB 8. LDAP se eliminará en una futura versión principal.
Para más detalles, consulte Deprecación de LDAP.
MongoDB Enterprise brinda soporte mediante queries a un servidor LDAP para los grupos LDAP de los que el usuario autenticado es un nodo. MongoDB asigna los nombres distinguidos (DN) de cada grupo devuelto a roles en la base de datos admin. MongoDB autoriza al usuario en función de los roles mapeados y sus privilegios asociados. Consulta Autorizacion LDAP para más información.