Las acciones de privilegio definen las operaciones que un usuario puede realizar en un Recurso. Un privilegio de MongoDB comprende un recurso y las acciones permitidas. Esta página enumera las acciones disponibles, agrupadas por propósito común.
MongoDB proporciona roles incorporados con combinaciones predefinidas de recursos y acciones permitidas. Para ver las listas de las acciones concedidas, consulte:
Para definir roles personalizados, consulte:
Acciones de query y guardado
findEl usuario puede ejecutar los siguientes comandos y sus métodos asistentes equivalentes:
aggregatepara todas las operaciones de pipeline excepto$collStats,$outy$indexStats.killCursors, siempre que el cursor esté asociado a un usuario actualmente autenticado.mapReducecon la opción{out: inline}.
Requerido para la parte del query del comando
mapReducey del método asistentedb.collection.mapReduce()al generar salidas a una colección.Requerido para la parte de la query del comando
findAndModifyy del método asistentedb.collection.findAndModify().Requerido en la colección de origen para los comandos
cloneCollectionAsCappedyrenameCollectiony el método asistentedb.collection.renameCollection().Si el usuario no tiene la acción de privilegio
listDatabases, los usuarios pueden ejecutar el comandolistDatabasespara devolver una lista de bases de datos para las cuales el usuario tiene privilegios (incluyendo bases de datos para las cuales el usuario tiene privilegios en colecciones específicas) si el comando se ejecuta con la opciónauthorizedDatabasesno especificada o establecida entrue.Aplicar esta acción a los recursos de base de datos o colección.
insertEl usuario puede realizar los siguientes comandos y sus métodos equivalentes:
Requerido para la parte de salida del comando
mapReducey del método asistentedb.collection.mapReduce()al generar salidas a una colección.Requerido para el comando
aggregatey el método asistentedb.collection.aggregate()al utilizar el operador de pipeline$outo$merge.Requerido para los comandos
updateyfindAndModifyy los métodos asistentes equivalentes cuando se utilizan con la opciónupsert.Requerido en la colección de destino para los siguientes comandos y sus métodos asistentes:
Aplicar esta acción a los recursos de base de datos o colección.
removeEl usuario puede ejecutar el comando
deletey el método asistente equivalente.Requerido para la parte de guardado del comando
findAndModifyy del métododb.collection.findAndModify().Requerido para el comando
mapReducey el método asistentedb.collection.mapReduce()cuando se especifica la acciónreplaceal generar una salida a una colección.Requerido para el comando
aggregatey el método asistentedb.collection.aggregate()al utilizar el operador de pipeline$out.Aplicar esta acción a los recursos de base de datos o colección.
updateEl usuario puede ejecutar el comando
updatey los métodos asistentes equivalentes.Requerido para el comando
mapReducey el método asistentedb.collection.mapReduce()al generar salidas a una colección sin especificar la acciónreplace.Requerido para el comando
findAndModifyy el método asistentedb.collection.findAndModify().Aplicar esta acción a los recursos de base de datos o colección.
bypassDocumentValidationLos usuarios pueden omitir la validación de esquema en los comandos y métodos compatibles con la opción
bypassDocumentValidation. Los siguientes comandos y sus métodos equivalentes permiten omitir la validación de esquema:Aplicar esta acción a los recursos de base de datos o colección.
useUUIDEl usuario puede ejecutar los siguientes comandos usando un UUID como si fuera un espacio de nombres:
Por ejemplo, este privilegio autoriza a un usuario a ejecutar el siguiente comando, el cual ejecuta un comando
finden una colección con el UUID dado. Para que sea exitosa, esta operación también requiere que el usuario esté autorizado para ejecutar el comandofinden el namespace de la colección correspondiente al UUID dado.db.runCommand({find: UUID("123e4567-e89b-12d3-a456-426655440000")}) Para obtener más información sobre los UUID de colecciones, consulte las Colecciones.
Aplica esta acción al recurso
cluster.
Acciones de gestión de bases de datos
changeCustomDataEl usuario puede cambiar la información personalizada de cualquier usuario en la base de datos proporcionada. Aplica esta acción a los recursos de bases de datos.
changeOwnCustomDataLos usuarios pueden cambiar su propia información personalizada. Se debe aplicar esta acción a los recursos de la base de datos. Se debe consultar también Cambiar la contraseña y los datos personalizados en implementaciones autogestionadas.
changeOwnPasswordLos usuarios pueden cambiar sus propias contraseñas. Se debe aplicar esta acción a los recursos de la base de datos. Se debe consultar también Cambiar la contraseña y los datos personalizados en implementaciones autogestionadas.
changePasswordEl usuario puede cambiar la contraseña de cualquier usuario en la base de datos proporcionada. Aplica esta acción a los recursos de bases de datos.
createCollectionEl usuario puede ejecutar el método
db.createCollection(). Aplica esta acción a los recursos de base de datos o colección.
createIndexProporciona acceso al método
db.collection.createIndex()y al comandocreateIndexes. Aplicar esta acción a los recursos de base de datos o colección.
createRoleEl usuario puede crear nuevos roles en la base de datos proporcionada. Aplique esta acción a los recursos de bases de datos.
createUserEl usuario puede crear nuevos usuarios en la base de datos proporcionada. Aplica esta acción a los recursos de bases de datos.
dropCollectionEl usuario puede ejecutar el método
db.collection.drop(). Aplica esta acción a los recursos de base de datos o colección.
dropRoleEl usuario puede borrar cualquier rol de la base de datos proporcionada. Aplique esta acción a los recursos de bases de datos.
dropUserEl usuario puede borrar cualquier rol de la base de datos proporcionada. Aplica esta acción a los recursos de bases de datos.
enableProfilerEl usuario puede ejecutar el método
db.setProfilingLevel(). Aplica esta acción a los recursos de base de datos.
grantRoleEl usuario puede otorgar cualquier rol en la base de datos a cualquier usuario de cualquier base de datos del sistema. Aplique esta acción a los recursos de base de datos.
killCursorsLos usuarios siempre pueden terminar sus propios cursores, independientemente de si los usuarios tienen el privilegio para
killCursors.
killAnyCursorEl usuario puede eliminar cualquier cursor, incluso los cursores creados por otros usuarios. Aplica esta acción a los recursos de la colección.
planCacheIndexFilterEl usuario puede ejecutar los comandos
planCacheClearFilters,planCacheListFiltersyplanCacheSetFilter. Aplique la acciónplanCacheIndexFiltera los recursos de la colección.
revokeRoleEl usuario puede remover cualquier rol de cualquier usuario de cualquier base de datos del sistema. Aplica esta acción a los recursos de base de datos.
setAuthenticationRestrictionEl usuario puede especificar el campo authenticationRestrictions en el documento
useral ejecutar los siguientes comandos:El usuario puede especificar el campo
authenticationRestrictionsen el documentoroleal ejecutar los siguientes comandos:Nota
Los siguientes roles integrados otorgan este privilegio:
El rol
userAdminotorga este privilegio en la base de datos a la que se le asigna el rol.El rol
userAdminAnyDatabaseproporciona este privilegio en todas las bases de datos.
De manera transitiva, los roles
restoreyroottambién otorgan este privilegio.Aplique esta acción a los recursos de base de datos.
setFeatureCompatibilityVersionEl usuario puede ejecutar el comando
setFeatureCompatibilityVersion. Aplica esta acción al recurso delcluster.
unlockEl usuario puede realizar el método
db.fsyncUnlock(). Aplique esta acción al recursocluster.
Acciones de gestión de la implementación
authSchemaUpgradeEl usuario puede ejecutar el comando
authSchemaUpgrade. Aplica esta acción al recursocluster.
cleanupOrphanedEl usuario puede ejecutar el comando
cleanupOrphaned. Aplica esta acción al recurso delcluster.
cpuProfilerEl usuario puede habilitar y utilizar el perfilador de CPU. Aplica esta acción al recurso del
cluster.
inprogEl usuario puede usar el método
db.currentOp()para obtener información sobre operaciones pendientes y activas. Aplique esta acción al recursocluster.Incluso sin el privilegio
inprog, en instancias demongod, los usuarios pueden ver sus propias operaciones al ejecutardb.currentOp( { "$ownOps": true } ).
invalidateUserCacheProporciona acceso al comando
invalidateUserCache. Aplica esta acción al recursocluster.
killopEl usuario puede realizar el método
db.killOp(). Aplique esta acción al recursocluster.Incluso sin el privilegio
killop, en instancias demongod, los usuarios pueden finalizar sus propias operaciones.
planCacheReadEl usuario puede ejecutar las siguientes operaciones:
$planCacheStatsetapa de agregación.
Aplicar esta acción a los recursos de base de datos o colección.
planCacheWriteEl usuario puede ejecutar el comando
planCacheCleary los métodosPlanCache.clear()yPlanCache.clearPlansByQuery(). Aplica esta acción a los recursos de base de datos o de colección.
Acciones de flujo de cambios
changeStreamEl usuario con
changeStreamyfinden la colección específica, todas las colecciones que no seansystemen una base de datos específica, o todas las colecciones que no seansystemen todas las bases de datos pueden abrir un cursor de flujo de cambios para ese recurso.
Acciones de replicación
replSetConfigureEl usuario puede configurar un set de réplicas. Aplica esta acción al recurso del
cluster.
replSetGetConfigEl usuario puede ver la configuración de un Set de réplicas. Proporciona acceso al comando
replSetGetConfigy al método asistenters.conf().Aplica esta acción al recurso
cluster.
replSetGetStatusEl usuario puede ejecutar el comando
replSetGetStatus. Aplica esta acción al recurso delcluster.
replSetHeartbeatEl usuario puede ejecutar el comando
replSetHeartbeaten desuso. Aplica esta acción al recursocluster.
replSetStateChangeEl usuario puede cambiar el estado de un set de réplicas mediante los comandos
replSetFreeze,replSetMaintenance,replSetStepDownyreplSetSyncFrom. Aplique esta acción al recursocluster.
Acciones de particionado
addShardEl usuario puede ejecutar el comando
addShard. Aplica esta acción al recurso delcluster.
analyzeShardKeyEl usuario puede ejecutar el comando
analyzeShardKey. Aplica esta acción a los recursos de la base de datos y de la colección.Incluido en los
clusterManageryenableShardingroles incorporados.
checkMetadataConsistencyEl usuario puede ejecutar el comando
checkMetadataConsistency. Aplica esta acción a los recursos decluster, base de datos o colección.Nuevo en la versión 7.0.
clearJumboFlagEs necesario borrar la bandera jumbo de un fragmento utilizando el comando
clearJumboFlag. Aplica esta acción a los recursos de base de datos o colección.Incluido en el rol incorporado
clusterManager.
enableShardingNota
Recursos pertinentes
La acción puede aplicarse a cualquiera de:
Base de datos o colección como recurso para activar la partición de una base de datos o particionar una colección.
Recurso de clúster para realizar diversas operaciones en zonas de fragmentos.
RecursosDescripciónOtorga a los usuarios privilegios para realizar las siguientes operaciones:
Activa la fragmentación en una base de datos usando el comando
enableSharding, yParticiona una colección usando el comando
shardCollection.
Otorga a los usuarios privilegios para realizar las siguientes operaciones en la zona de partición:
También puedes realizar estas operaciones de zona de particiones si tienes
find/updateacciones en las colecciones apropiadas en la base de datosconfig. Consulta las operaciones específicas para obtener detalles.
refineCollectionShardKeyOtorga privilegios para refinar la clave de fragmentación de una colección fragmentada y ejecutar el comando
refineCollectionShardKey. Aplica esta acción a los recursos de base de datos o colección.Incluido en el rol incorporado
clusterManager.
reshardCollectionEl usuario puede ejecutar el comando
reshardCollection. Aplica esta acción a los recursos de bases de datos o colecciones.Nuevo en la versión 5.0.
flushRouterConfigEl usuario puede ejecutar el comando
flushRouterConfig. Aplica esta acción al recurso delcluster.
getClusterParameterEl usuario puede ejecutar el comando
getClusterParameter. Aplica esta acción al recurso delcluster.Novedades en la versión 6.0.
getShardMapEl usuario puede ejecutar el comando
getShardMap. Aplica esta acción al recurso delcluster.
listShardsEl usuario puede ejecutar el comando
listShards. Aplica esta acción al recurso delcluster.
moveChunkEl usuario puede ejecutar los comandos
moveChunkymoveRange. Además, el usuario puede ejecutar el comandomovePrimarysiempre que el privilegio se aplique a un recurso de base de datos adecuado. Aplica esta acción a los recursos de bases de datos o colecciones.
removeShardEl usuario puede ejecutar el comando
removeShard. Aplica esta acción al recurso delcluster.
shardedDataDistributionEl usuario puede realizar la etapa de la canalización de agregación
$shardedDataDistribution.Nuevo en la versión 6.0.3.
shardingStateEl usuario puede ejecutar el comando
shardingState. Aplica esta acción al recurso delcluster.
splitChunkEl usuario puede ejecutar el comando
split. Aplica esta acción al recurso delcluster.
Acciones de administración del servidor
applicationMessageEl usuario puede ejecutar el comando
logApplicationMessage. Aplica esta acción al recurso delcluster.
bypassWriteBlockingModeEl usuario puede realizar guardados incluso cuando están bloqueados por el comando
setUserWriteBlockMode. Aplica esta acción al recursocluster.
closeAllDatabasesEl usuario puede ejecutar el comando
closeAllDatabasesen desuso. Aplica esta acción al recursocluster.
collModEl usuario puede ejecutar el comando
collMod. Aplica esta acción a los recursos de bases de datos o colecciones.
compactEl usuario puede ejecutar el comando
compact. Aplica esta acción a los recursos de bases de datos o colecciones.
compactStructuredEncryptionDataEl usuario puede ejecutar el comando
compactStructuredEncryptionData. Aplica esta acción a los recursos de bases de datos o colecciones.
connPoolSyncEl usuario puede ejecutar el comando interno
connPoolSync. Aplica esta acción al recurso delcluster.
convertToCappedEl usuario puede ejecutar el comando
convertToCapped. Aplica esta acción a los recursos de bases de datos o colecciones.
dropConnectionsEl usuario puede ejecutar el comando
dropConnections. Aplica esta acción al recurso delcluster.
dropDatabaseEl usuario puede ejecutar el comando
dropDatabase. Aplica esta acción a los recursos de bases de datos.
dropIndexEl usuario puede ejecutar el comando
dropIndexes. Aplica esta acción a los recursos de bases de datos o colecciones.
forceUUIDEl usuario puede crear una colección con un UUID de colección definido por el usuario utilizando el comando
applyOps.Aplica esta acción al recurso
cluster.
fsyncEl usuario puede ejecutar el comando
fsync. Aplica esta acción al recurso delcluster.
getDefaultRWConcernEl usuario puede emitir el comando administrativo
getDefaultRWConcern. Aplique esta acción al recursocluster.
getParameterEl usuario puede ejecutar el comando
getParameter. Aplica esta acción al recurso delcluster.
hostInfoProporciona información sobre el servidor en el que se ejecuta la instancia de MongoDB. Aplica esta acción al recurso
cluster.
oidResetEs necesario restablecer el string aleatorio de 5 bytes que se utiliza en el ObjectID.
logRotateEl usuario puede ejecutar el comando
logRotate. Aplica esta acción al recurso delcluster.
reIndexEl usuario puede ejecutar el comando
reIndex. Aplica esta acción a los recursos de bases de datos o colecciones.
renameCollectionSameDBPermite al usuario renombrar colecciones en la base de datos actual utilizando el comando
renameCollection. Aplica esta acción a los recursos de bases de datos.Además, el usuario debe tener
finden la colección de origen o no tenerfinden la colección de destino.Si ya existe una colección con el nuevo nombre, el usuario también debe tener la acción
dropCollectionen la colección de destino.
rotateCertificatesEl usuario puede ejecutar el comando
rotateCertificatescommand. Aplica esta acción al recursocluster.
setDefaultRWConcernEl usuario puede emitir el comando administrativo
setDefaultRWConcern. Aplique esta acción al recursocluster.
setParameterEl usuario puede ejecutar el comando
setParameter. Aplica esta acción al recurso delcluster.
setUserWriteBlockModeEl usuario puede ejecutar el comando
setUserWriteBlockMode. Aplica esta acción al recurso delcluster.
shutdownEl usuario puede ejecutar el comando
shutdown. Aplica esta acción al recurso delcluster.
Acciones de la sesión
impersonateEl usuario puede ejecutar el comando
killAllSessionsByPatterncon el patrónusersyroles. Aplica esta acción al recurso delcluster.Para ejecutar el comando
killAllSessionsByPattern, los usuarios también deben tener privilegios dekillAnySessionen el recurso del clúster.
listSessionsEl usuario puede realizar la operación
$listSessionso la operación$listLocalSessionspara todos los usuarios o para usuarios específicos. Aplica esta acción al recursocluster.
killAnySessionEl usuario puede ejecutar los comandos
killAllSessionsykillAllSessionsByPattern. Aplica esta acción al recursocluster.Tip
Acciones del índice de búsqueda de Atlas
Las siguientes acciones permiten a los usuarios ejecutar comandos de búsqueda de bases de datos de Atlas. Estas acciones solo son relevantes para implementaciones alojadas en MongoDB Atlas.
createSearchIndexesEl usuario puede ejecutar el
createSearchIndexescomando de base de datos. Aplique esta acción a la base de datos o al recurso de colección.
dropSearchIndexEl usuario puede ejecutar el
dropSearchIndexcomando de base de datos. Aplique esta acción a la base de datos o al recurso de colección.
listSearchIndexesEl usuario puede ejecutar la
$listSearchIndexesetapa de agregación. Aplique esta acción a la base de datos o al recurso de colección.
updateSearchIndexEl usuario puede ejecutar el
updateSearchIndexcomando de base de datos. Aplique esta acción a la base de datos o al recurso de colección.
Acciones de diagnóstico
collStatsEl usuario puede ejecutar el comando
collStats. Aplica esta acción a los recursos de bases de datos o colecciones.
connPoolStatsEl usuario puede ejecutar el comando
connPoolStats. Aplica esta acción al recurso delcluster.
dbHashEl usuario puede ejecutar el comando
dbHash. Aplica esta acción a los recursos de bases de datos o colecciones.
dbStatsEl usuario puede ejecutar el comando
dbStats. Aplica esta acción a los recursos de bases de datos.
getCmdLineOptsEl usuario puede ejecutar el comando
getCmdLineOpts. Aplica esta acción al recurso delcluster.
getLogEl usuario puede ejecutar el comando
getLog. Aplica esta acción al recurso delcluster.
indexStatsEl usuario puede ejecutar la etapa de canalización de agregación
$indexStats. Aplicar esta acción a los recursos de base de datos o colección.Para utilizar la etapa
$indexStats, los usuarios deben autenticarse con al menos el rol declusterMonitor.
listDatabasesEl usuario puede ejecutar el comando
listDatabases. Aplica esta acción al recurso delcluster.Si el usuario no tiene la acción de privilegio
listDatabases, los usuarios pueden ejecutar el comandolistDatabasespara devolver una lista de bases de datos para las cuales el usuario tiene privilegios (incluyendo bases de datos para las cuales el usuario tiene privilegios en colecciones específicas) si el comando se ejecuta con la opciónauthorizedDatabasesno especificada o establecida entrue.
listCollectionsEl usuario puede ejecutar el comando
listCollections. Aplica esta acción a los recursos de bases de datos.Nota
Los usuarios sin el privilegio requerido pueden ejecutar el comando
listCollectionscon ambas opcionesauthorizedCollectionsynameOnlyestablecidas entrue. En este caso, el comando devuelve solo el nombre y el tipo de las colecciones para las que el usuario tiene privilegios.
listIndexesEl usuario puede ejecutar el comando
listIndexes. Aplica esta acción a los recursos de bases de datos o colecciones.
queryStatsReadEl usuario puede ejecutar la
$queryStatsetapa de agregación sin la opcióntransformIdentifiers.
queryStatsReadTransformedEl usuario puede ejecutar la etapa de agregación
$queryStatssin la opcióntransformIdentifiers.
serverStatusEl usuario puede ejecutar el comando
serverStatus. Aplica esta acción al recurso delcluster.
validateEl usuario puede ejecutar los comandos
validateyvalidateDBMetadata. Aplica esta acción a los recursos de base de datos o colección.
topEl usuario puede ejecutar el comando
top. Aplica esta acción al recurso delcluster.
Acciones internas
anyActionPermite cualquier acción en un recurso. No asignes esta acción a menos que sea absolutamente necesario.
applyOpsEl usuario puede ejecutar el comando
applyOps. Aplica esta acción a un recurso decluster.