MongoDB emplea el control de acceso basado en roles (RBAC) para controlar el acceso a un sistema MongoDB. A un 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 funciones, el usuario no tiene acceso al sistema.
MongoDB no habilita el control de acceso de forma predeterminada. Puede habilitar la autorización mediante --auth
la security.authorization
configuración o . La habilitación de la autenticación interna también habilita la autorización del cliente.
Una vez que se habilita el control de acceso, los usuarios deben autenticarse .
Un rol otorga privilegios para realizar las acciones especificadas en el recurso . Cada privilegio se especifica explícitamente en el rol o se hereda de otro rol o de ambos.
Un privilegio consta de un recurso especificado y las acciones permitidas en el recurso.
Un recurso es una base de datos, colección, conjunto de colecciones o el clúster. Si el recurso es el clúster, las acciones afiliadas afectan el estado del sistema en lugar de una base de datos o colección específica. Para obtener información sobre los documentos de recursos, consulte el Documento de recursos .
Una acción especifica la operación permitida en el recurso. Para conocer las acciones disponibles, consulte Acciones de privilegio .
Un rol puede incluir uno o más roles existentes en su definición, en cuyo 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 admin
base de datos puede heredar privilegios de roles en cualquier base de datos.
Puede ver los privilegios de un rol emitiendo el rolesInfo
comando con los campos showPrivileges
y showBuiltinRoles
configurados en true
.
Puede asignar roles a los usuarios durante la creación de usuarios. También puede actualizar los usuarios existentes para otorgar o revocar roles. Para obtener una lista completa de los métodos de administración de usuarios, consulte Administración de usuarios
Un usuario asignado a un rol recibe todos los privilegios de ese rol. Un usuario puede tener múltiples roles. Al asignar roles de 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 usuarios que tenga privilegios para administrar a otros usuarios. Consulte Habilitar control de acceso .
MongoDB proporciona roles integrados que brindan un conjunto de privilegios comúnmente necesarios en un sistema de base de datos.
Si estos roles integrados no pueden proporcionar el conjunto de privilegios deseado, MongoDB proporciona métodos para crear y modificar roles definidos por el usuario .