|
MongoDB concede acceso a datos y comandos mediante autorización basada en roles y proporciona roles integrados que proporcionan los diferentes niveles de acceso comúnmente necesarios en un sistema de base de datos. También puedes crear roles definidos por el usuario. Un rol otorga privilegios para realizar conjuntos de acciones sobre recursos definidos. Un rol dado se aplica a la base de datos en la que está definido y puede conceder acceso hasta un nivel de granularidad de colección. Cada uno de los roles integrados de MongoDB define el acceso a nivel de base de datos para todas las colecciones no relacionadas con el sistema en la base de datos del rol y a nivel de colección para todas las colecciones del sistema. MongoDB proporciona los roles integrados de usuario y administración de bases de datos en cada base de datos. MongoDB proporciona todos los demás roles integrados únicamente en la base de datos de administrador. Esta sección describe los privilegios para cada rol incorporado. También puedes ver los privilegios de un rol integrado en cualquier momento asignando el comando rolesInfo con los campos showPrivilege y showBuiltinRolesfields configurados en true. Roles de usuario en bases de datosCada base de datos incluye los siguientes roles de cliente: leerProporciona la capacidad de leer datos de todas las colecciones no relacionadas con el sistema y de las siguientes colecciones del sistema: system.indexes, system.js y las colecciones system.namespaces. El rol proporciona acceso de lectura otorgando las siguientes acciones: - collStats
- dbHash
- dbStats
- encontrar
- killCursors
- listÍndices
- ListaColecciones
readWriteProporciona todos los privilegios del rol de lectura además de la capacidad de modificar datos en todas las colecciones no del sistema y en la colección system.js. El puesto proporciona las siguientes acciones sobre esas colecciones: - collStats
- convertidoToCap
- createCollection
- dbHash
- dbStats
- dropCollection
- createIndex
- dropIndex
- Vactycap
- encontrar
- insertar
- killCursors
- listÍndices
- ListaColecciones
- eliminar
- renameCollectionSameDB
- actualizar
Funciones de administración de bases de datosCada base de datos incluye los siguientes roles de administración de bases de datos: dbAdminProporciona las siguientes acciones en las colecciones system.indexes, system.namespaces y system.profile de la base de datos: - collStats
- dbHash
- dbStats
- encontrar
- killCursors
- listÍndices
- ListaColecciones
- dropCollection y createCollection solo en system.profile
Cambiado en la versión 2.6.4: dbAdmin añadió la createCollection para system.profilecollection. Las versiones anteriores solo tenían la dropCollection en la colección system.profile.
Proporciona las siguientes acciones en todas las colecciones no relacionadas con el sistema. Este rol no incluye acceso completo a lecturas en colecciones no del sistema: - bypassDocumentValidation
- collMod
- collStats
- compacto
- convertidoToCap
- createCollection
- createIndex
- dbStats
- dropCollection
- dropDatabase
- dropIndex
- enableProfiler
- reIndex
- renameCollectionSameDB
- repairDatabase
- storageDetalles
- validar
dbOwnerEl propietario de la base de datos puede realizar cualquier acción administrativa en la base de datos. Este rol combina los privilegios concedidos por los roles readWrite, dbAdmin y userAdmin. userAdminProporciona la capacidad de crear y modificar roles y usuarios en la base de datos actual. Este rol también proporciona indirectamente acceso a superusuario tanto a la base de datos o, si se asigna a la base de datos de administradores, al clúster. El rol UserAdmin permite a los usuarios conceder cualquier privilegio a cualquier usuario, incluidos ellos mismos. El rol userAdmin proporciona explícitamente las siguientes acciones: - changeCustomData
- changePassword
- createRole
- createUser
- dropRole
- dropUser
- GrantRol
- revokeRole
- viewRol
- viewUser
Roles de Administración de ClústeresLa base de datos administrativa incluye los siguientes roles para administrar todo el sistema en lugar de una sola base de datos. Estos roles incluyen, pero no se limitan a, funciones administrativas de conjuntos de réplicas y clústeres fragmentados. clusterAdminProporciona el mayor acceso para la gestión de clústeres. Este rol combina los privilegios otorgados por los roles theclusterManager, clusterMonitor y hostManager. Además, el rol proporciona la acción de dropDatabase. ClusterManagerProporciona acciones de gestión y monitorización sobre el clúster. Un usuario con este rol puede acceder a las bases de datos locales de config y de configuración, que se utilizan en el sharding y la replicación, respectivamente. Proporciona las siguientes acciones sobre el clúster en su conjunto: - addShard
- applicationMessage
- limpieza Huérfano
- flushRouterConfig
- listShards
- removeShard
- replSetConfigure
- replSetGetConfig
- replSetGetStatus
- replSetStateChange
- resincronización
Proporciona las siguientes acciones en todas las bases de datos del clúster: - enableSharding
- moveChunk
- splitChunk
- splitVector
En la base de datos de configuración, se proporcionan las siguientes acciones en la colección de configuración: - insertar
- eliminar
- actualizar
En la base de datos de configuración, se proporcionan las siguientes acciones en todas las colecciones de configuración y en las colecciones thesystem.indexes, system.js y system.namespaces: - collStats
- dbHash
- dbStats
- encontrar
- killCursors
En la base de datos local, se proporcionan las siguientes acciones sobre la colección replset: - collStats
- dbHash
- dbStats
- encontrar
- killCursors
clusterMonitorProporciona acceso de solo lectura a herramientas de monitorización, como MongoDB Cloud Manager y el agente de monitorización Ops Manager. Proporciona las siguientes acciones sobre el clúster en su conjunto: - connPoolStats
- cursorInfo
- getCmdLineOpts
- getLog
- getParameter
- getShardMap
- hostInfo
- inprog
- listaBases de datos
- listShards
- netstat
- replSetGetStatus
- replSetGetConfig
- ServidorStatus
- Fragmentación de Estado
- Arriba
Proporciona las siguientes acciones en todas las bases de datos del clúster: - collStats
- dbStats
- getShardVersion
- indexStats
Proporciona la acción de buscar en todas las colecciones system.profile del clúster. Proporciona las siguientes acciones sobre las colecciones de configuración de la base de datos de configuración y las colecciones system.indexes, system.js y system.namespaces: - collStats
- dbHash
- dbStats
- encontrar
- killCursors
hostManagerPermite monitorizar y gestionar servidores. Proporciona las siguientes acciones sobre el clúster en su conjunto: - applicationMessage
- closeAllDatabases
- connPoolSync
- cpuProfiler
- diagLogging
- flushRouterConfig
- fsync
- invalidateUserCache
- killop
- logRotate
- resincronización
- SetParameter
- Cierre
- Toque
- desbloquear
Proporciona las siguientes acciones en todas las bases de datos del clúster: - killCursors
- repairDatabase
Roles de respaldo y restauraciónLa base de datos administrativa incluye las siguientes funciones para la copia de seguridad y restauración de datos: copia de seguridadProporciona privilegios mínimos necesarios para hacer copias de seguridad de datos. Este rol proporciona suficientes privilegios para usar el agente de respaldo de MongoDB Cloud Manager, el agente de respaldo de Ops Manager, o para usar mongodump y respaldar una instancia completa de mongod. Proporciona las acciones de inserción y actualización en la colección mms.backup en la base de datos de administración y en la colección de ajustes en la base de datos de configuración. Proporciona la acción listDatabases sobre el clúster en su conjunto. Proporciona la acción listCollections en todas las bases de datos. Proporciona la acción listIndexes para todas las colecciones. Proporciona la acción bypassDocumentValidation para colecciones que tienen validación documental. Proporciona la acción de búsqueda en lo siguiente: - todas las colecciones no relacionadas con el sistema en el clúster
- todas las siguientes colecciones del sistema en el clúster: system.indexes, system.namespaces y system.js
- Las colecciones admin.system.users y admin.system.roles
- La colección config.settings
- colecciones heredadas de system.users de versiones anteriores a la 2.6
Cambiado en la versión 3.2.1: El rol de copia de seguridad proporciona privilegios adicionales para respaldar las colecciones system.profile que existen al ejecutarse con perfilado de bases de datos. Anteriormente, los usuarios requerían un acceso adicional de lectura en esta colección. RestauraciónProporciona los privilegios necesarios para restaurar datos de copias de seguridad que no incluyen datos system.profilecollection. Este papel es suficiente al restaurar datos con mongorestore sin la opción --oplogReplay. Si los datos de respaldo incluyen datos de colección system.profile y la base de datos de destino no contiene la colección system.profile, mongorestore intenta crear la colección aunque El programa en realidad no restaura los documentos de System.profile. Por ello, el usuario necesita privilegios adicionales para realizar acciones createCollection y convertToCapped en la colección system.profile para una base de datos. Los roles integrados dbAdmin y dbAdminAnyDatabase proporcionan privilegios adicionales. Si ejecutas mongorestore con --oplogReplay, el rol de restauración es insuficiente para reproducir el oplog. Para reproducir el oplog, crea un rol definido por el usuario que tenga anyAction en anyResource y concede solo a usuarios que deban ejecutar mongorestore con --oplogReplay.
Proporciona las siguientes acciones sobre todas las colecciones no del sistema y las colecciones system.js en el clúster; en las colecciones admin.system.users y admin.system.roles en la base de datos de administradores; y sobre colecciones heredadas de system.users de versiones anteriores a la 2.6: - collMod
- createCollection
- createIndex
- dropCollection
- insertar
Proporciona la acción listCollections en todas las bases de datos. Proporciona las siguientes acciones adicionales en admin.system.users y heredadas system.userscollections: - encontrar
- eliminar
- actualizar
Proporciona la acción de búsqueda en todas las colecciones system.namespaces del clúster. Aunque restauración incluye la capacidad de modificar los documentos en admin.system.userscollection usando operaciones normales de modificación, solo modificar estos datos mediante la gestión de usuarios métodos.
Roles en todas las bases de datosLa base de datos de administración proporciona los siguientes roles que se aplican a todas las bases de datos en una instancia de Mongod y que son aproximadamente equivalentes a sus equivalentes de base de datos única: readAnyDatabaseProporciona los mismos permisos de solo lectura que la lectura, excepto que se aplica a todas las bases de datos del clúster. El rol también proporciona la acción listDatabases sobre el clúster en su conjunto. readWriteAnyDatabaseProporciona los mismos permisos de lectura y escritura que readWrite, excepto que se aplica a todas las bases de datos del clúster. El rol también proporciona la acción listDatabases sobre el clúster en su conjunto. userAdminAnyDatabaseProporciona el mismo acceso a las operaciones de administración de usuarios que userAdmin, excepto que se aplica a todas las bases de datos del clúster. El rol también proporciona las siguientes acciones sobre el clúster en su conjunto: - authSchemaUpgrade
- invalidateUserCache
- listaBases de datos
El rol también proporciona las siguientes acciones en las colecciones admin.system.users y admin.system.roles en la base de datos de administradores, y en colecciones heredadas system.users de versiones de MongoDB antes de la 2.6: - collStats
- dbHash
- dbStats
- encontrar
- killCursors
- planCacheRead
Modificado en la versión 2.6.4: userAdminAnyDatabase añadió los siguientes permisos en las colecciones admin.system.users y admin.system.roles:
El rol de usuarioAdminAnyDatabase no restringe los permisos que un usuario puede conceder. Como resultado, los usuarios de userAdminAnyDatabase pueden concederse privilegios superiores a los actuales e incluso pueden concederse todos los privilegios, aunque el rol no lo haga Autorizar explícitamente privilegios más allá de la administración del usuario. Este rol es efectivamente un superusuario del sistema MongoDB. dbAdminAnyDatabaseProporciona el mismo acceso a las operaciones de administración de bases de datos que dbAdmin, excepto que se aplica a todas las bases de datos del clúster. El rol también proporciona la acción listDatabases sobre el clúster en su conjunto.
Roles de superusuarioVarios roles proporcionan acceso a superusuario a nivel de sistema indirecto o directo. Los siguientes roles proporcionan la capacidad de asignar a cualquier usuario cualquier privilegio en cualquier base de datos, lo que significa que los usuarios con uno de estos roles pueden asignarse cualquier privilegio en cualquier base de datos: - rol dbOwner, cuando se asigna a la base de datos de administrador
- rol userAdmin, cuando se engloba en la base de datos de administrador
- Rol de usuarioAdminCualquiBase de Datos
El siguiente rol otorga privilegios completos sobre todos los recursos: raízProporciona acceso a las operaciones y a todos los recursos de los roles readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin y restauración combinados. Cambiado en la versión 3.0.7: La raíz tiene una acción de validación en el sistema. Cobros. Anteriormente, root no incluye acceso a colecciones que comienzan con el sistema. prefijo distinto de sistema.índices y espacios.sistema.nombres. El rol raíz incluye privilegios del rol de restauración.
Rol interno__systemMongoDB asigna este rol a objetos de usuario que representan miembros del clúster, como los miembros de conjuntos réplica e instancias mongos. El puesto otorga a su titular el derecho de tomar cualquier acción contra cualquier objeto en la base de datos. No asignes este rol a objetos de usuario que representan aplicaciones o administradores humanos, salvo en circunstancias excepcionales. Si necesitas acceso a todas las acciones en todos los recursos, por ejemplo para ejecutar comandos de ApplyOps, no asignes este rol. En su lugar, crea un rol definido por el usuario que conceda anyAction en anyResource y asegúrate de que solo los usuarios que necesitan acceso a estas operaciones tengan ese acceso. Original: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|