Ações de privilégio para sistemas autogerenciados
Nesta página
As ações de privilégios definem as operações que um usuário pode executar em umrecurso do . Um privilégio MongoDB compreende um recurso e as ações permitidas. Esta página lista ações disponíveis agrupadas por finalidade comum.
O MongoDB fornece roles incorporados com emparelhamentos predefinidos de recursos e ações permitidas. Para listas de ações concedidas, consulte Roles integrados em implementações autogerenciadas. Para definir funções personalizadas, consulte Criar um role definido pelo usuário.
Ações de query e gravação
find
O usuário pode executar os seguintes comandos e seus métodos de ajuda equivalentes:
aggregate
para todas as operações de pipeline exceto$collStats
,$out
e$indexStats
.geoSearch
(Removido no MongoDB 5.0)getLastError
(Removido no MongoDB 5.1)killCursors
, desde que o cursor esteja associado a um usuário atualmente autenticado.mapReduce
com a opção{out: inline}
.resetError
(Removido no MongoDB 5.0)
Necessário para a parte de query do comando
mapReduce
edb.collection.mapReduce()
método auxiliar ao enviar para uma coleção.Obrigatório para a parte de query do comando
findAndModify
e do método auxiliardb.collection.findAndModify()
.Necessário na coleção de origem para os comandos
cloneCollectionAsCapped
erenameCollection
e o método auxiliardb.collection.renameCollection()
.Se o usuário não tiver a ação de privilégio
listDatabases
, os usuários poderão executar o comandolistDatabases
para retornar uma lista de bancos de dados para os quais o usuário tem privilégios (incluindo bancos de dados para os quais o usuário tem privilégios em coleções específicas) se o comando for executado com a opçãoauthorizedDatabases
não especificada ou definida comotrue
.Aplique esta ação aos recursos de banco de dados ou de collection.
insert
O usuário pode executar os seguintes comandos e seus métodos equivalentes:
Necessário para a parte de saída do comando
mapReduce
e do método auxiliardb.collection.mapReduce()
ao enviar a saída para uma collection.Necessário para o comando
aggregate
edb.collection.aggregate()
método auxiliar ao usar o operador de pipeline$out
ou$merge
.Necessário para os comandos
update
efindAndModify
e métodos auxiliares equivalentes quando usados com a opçãoupsert
.Obrigatório na coleção de destino para os seguintes comandos e seus métodos auxiliares:
Aplique esta ação aos recursos de banco de dados ou de collection.
remove
O usuário pode executar o comando
delete
e o método de auxiliar equivalente.Necessário para a parte de gravação do comando
findAndModify
e do métododb.collection.findAndModify()
.Necessário para o comando
mapReduce
e o método auxiliardb.collection.mapReduce()
quando você especifica a açãoreplace
ao enviar para uma collection.Necessário para o comando
aggregate
edb.collection.aggregate()
método auxiliar ao usar o operador de pipeline$out
.Aplique esta ação aos recursos de banco de dados ou de collection.
update
O usuário pode executar o comando
update
e métodos de auxiliar equivalentes.Necessário para o comando
mapReduce
edb.collection.mapReduce()
método auxiliar ao enviar para uma collection sem especificar a açãoreplace
.Necessário para o comando
findAndModify
e método de auxiliar dodb.collection.findAndModify()
.Aplique esta ação aos recursos de banco de dados ou de collection.
bypassDocumentValidation
Novo na versão 3.2.
Os usuários podem ignorar a validação do documento em comandos e métodos que permitem a opção
bypassDocumentValidation
. Os seguintes comandos e seus métodos equivalentes permitem ignorar a validação do documento:Aplique esta ação aos recursos de banco de dados ou de collection.
useUUID
Novidade na versão 3.6.
O usuário pode executar os seguintes comandos utilizando um UUID como se fosse um namespace:
Por exemplo, este privilégio autoriza um usuário a executar o seguinte comando que executa um comando
find
em uma coleção com o UUID fornecido. Para ser bem-sucedida, essa operação também exige que o usuário esteja autorizado a executar o comandofind
no namespace da coleção correspondente ao UUID fornecido.db.runCommand({find: UUID("123e4567-e89b-12d3-a456-426655440000")}) Para mais informações sobre UUIDs de coleção, consulte Coleções.
Aplique esta ação ao recurso
cluster
.
Ações de gerenciamento de banco de dados
changeCustomData
O usuário pode alterar as informações personalizadas de qualquer usuário no banco de dados fornecido. Aplique esta ação aos recursos do banco de dados.
changeOwnCustomData
Os usuários podem alterar suas próprias informações personalizadas. Aplique esta ação aos recursos do banco de dados. Consulte também Alterar sua senha e dados personalizados em sistemas autogerenciados.
changeOwnPassword
Os usuários podem alterar suas próprias senhas. Aplique esta ação aos recursos do banco de dados. Consulte também Alterar sua senha e dados personalizados em sistemas autogerenciados.
changePassword
O usuário pode alterar a senha de qualquer usuário no banco de dados fornecido. Aplique esta ação aos recursos do banco de dados.
createCollection
O usuário pode executar o método
db.createCollection()
. Aplique esta ação aos recursos de banco de dados ou de collection.
createIndex
Fornece acesso ao método
db.collection.createIndex()
e o comandocreateIndexes
. Aplique esta ação aos recursos de banco de dados ou de coleção.
createRole
O usuário pode criar novos papéis no banco de dados fornecido. Aplique esta ação aos recursos do banco de dados.
createUser
O usuário pode criar novos usuários no banco de dados fornecido. Aplique esta ação aos recursos do banco de dados.
dropCollection
O usuário pode executar o método
db.collection.drop()
. Aplique esta ação aos recursos de banco de dados ou de collection.
dropRole
O usuário pode excluir qualquer papel do banco de dados fornecido. Aplique esta ação aos recursos do banco de dados.
dropUser
O usuário pode remover qualquer usuário do banco de dados fornecido. Aplique esta ação aos recursos do banco de dados.
enableProfiler
O usuário pode executar o método
db.setProfilingLevel()
. Aplique esta ação aos recursos do banco de dados.
grantRole
O usuário pode conceder qualquer papel no banco de dados a qualquer usuário a partir de qualquer banco de dados no sistema. Aplique esta ação aos recursos do banco de dados.
killCursors
Os usuários sempre podem eliminar seus próprios cursores, independentemente de terem o privilégio
killCursors
.
killAnyCursor
Novidades na versão 3.6.3.
O usuário pode matar qualquer cursor, até mesmo cursores criados por outros usuários. Aplique esta ação aos recursos de collection.
planCacheIndexFilter
O usuário pode executar os comandos
planCacheClearFilters
,planCacheListFilters
eplanCacheSetFilter
. Aplique a açãoplanCacheIndexFilter
aos recursos de coleção.
revokeRole
O usuário pode remover qualquer role de qualquer usuário de qualquer banco de dados no sistema. Aplique esta ação aos recursos do banco de dados.
setAuthenticationRestriction
Novidade na versão 3.6.
O usuário pode especificar o campo authenticationRestrictions no documento do
user
ao executar os seguintes comandos:O usuário pode especificar o campo
authenticationRestrictions
no documentorole
ao executar os seguintes comandos:Observação
Os seguintes papéis embutidos concedem este privilégio:
O papel do
userAdmin
fornece este privilégio no banco de dados que o papel é atribuído.O role do
userAdminAnyDatabase
fornece este privilégio em todos os bancos de dados.
Transitivamente, os papéis do
restore
eroot
também fornecem este privilégio.Aplique esta ação aos recursos do banco de dados.
setFeatureCompatibilityVersion
O usuário pode executar o comando
setFeatureCompatibilityVersion
. Aplique esta ação ao recursocluster
.
unlock
O usuário pode executar o método
db.fsyncUnlock()
. Aplique esta ação ao recursocluster
.
Ações de gestão de implementação
authSchemaUpgrade
O usuário pode executar o comando
authSchemaUpgrade
. Aplique esta ação ao recursocluster
.
cleanupOrphaned
O usuário pode executar o comando
cleanupOrphaned
. Aplique esta ação ao recursocluster
.
inprog
O usuário pode utilizar o método
db.currentOp()
para retornar informações sobre operações pendentes e ativas. Aplique esta ação ao recursocluster
.Mesmo sem o privilégio
inprog
, nas instânciasmongod
, os usuários podem visualizar suas próprias operações executandodb.currentOp( { "$ownOps": true } )
.
invalidateUserCache
Fornece acesso ao comando
invalidateUserCache
. Aplique esta ação ao recursocluster
.
killop
O usuário pode executar o método
db.killOp()
. Aplique esta ação ao recursocluster
.Mesmo sem o privilégio do
killop
, em instâncias domongod
, os usuários podem matar suas próprias operações.
planCacheRead
O usuário pode executar as seguintes operações:
$planCacheStats
estágio de agregação.
Aplique esta ação aos recursos de banco de dados ou de collection.
planCacheWrite
O usuário pode executar o comando
planCacheClear
e os métodosPlanCache.clear()
ePlanCache.clearPlansByQuery()
. Aplique esta ação ao banco de dados ou recursos de coleta.
Alterar ações de fluxo
changeStream
Usuário com
changeStream
efind
na coleção específica, todas as coleções nãosystem
em um banco de dados específico ou todas as coleções nãosystem
em todos os bancos de dados podem abrir cursor de fluxo de alterações para este recurso.
Ações de replicação
replSetConfigure
O usuário pode configurar um conjunto de réplicas. Aplique esta ação ao recurso
cluster
.
replSetGetConfig
O usuário pode visualizar a configuração de um conjunto de réplicas. Fornece acesso ao comando
replSetGetConfig
e ao método auxiliarrs.conf()
.Aplique esta ação ao recurso
cluster
.
replSetGetStatus
O usuário pode executar o comando
replSetGetStatus
. Aplique esta ação ao recursocluster
.
replSetHeartbeat
O usuário pode executar o comando
replSetHeartbeat
descontinuado. Aplique esta ação ao recursocluster
.
replSetStateChange
O usuário pode alterar o estado de uma réplicas definida pelos comandos
replSetFreeze
,replSetMaintenance
,replSetStepDown
ereplSetSyncFrom
. Aplique esta ação ao recursocluster
.
Ações de compartilhamento
addShard
O usuário pode executar o comando
addShard
. Aplique esta ação ao recursocluster
.
clearJumboFlag
Necessário para limpar o sinalizador jumbo de um bloco usando o comando
clearJumboFlag
. Aplique esta ação aos recursos de banco de dados ou de coleção.Incluído no role embutido do
clusterManager
.
enableSharding
Observação
Recursos aplicáveis
A ação pode ser aplicada a:
Recurso de banco de dados ou coleção para ativar a fragmentação de um banco de dados ou fragmentar uma coleção.
Recurso de cluster para realizar várias operações na zona de shards.
RecursosDescriçãoConcede privilégios aos usuários para executar as seguintes operações:
Habilitar o compartilhamento em um banco de dados utilizando o comando
enableSharding
eFragmentar uma coleção usando o comando
shardCollection
.
refineCollectionShardKey
Fornece privilégios para refinar a chave de fragmento para uma coleção fragmentada e executar o comando
refineCollectionShardKey
. Aplique esta ação aos recursos do banco de dados ou coleção.Incluído no role embutido do
clusterManager
.
reshardCollection
O usuário pode executar o comando
reshardCollection
. Aplique esta ação aos recursos do banco de dados ou coleção.Novidades na versão 5.0.
flushRouterConfig
O usuário pode executar o comando
flushRouterConfig
. Aplique esta ação ao recursocluster
.
getShardMap
O usuário pode executar o comando
getShardMap
. Aplique esta ação ao recursocluster
.
listShards
O usuário pode executar o comando
listShards
. Aplique esta ação ao recursocluster
.
moveChunk
O usuário pode executar o comando
moveChunk
. Além disso, o usuário pode executar o comandomovePrimary
desde que o privilégio seja aplicado a um recurso de banco de dados apropriado. Aplique esta ação aos recursos do banco de dados ou coleção.
removeShard
O usuário pode executar o comando
removeShard
. Aplique esta ação ao recursocluster
.
shardingState
O usuário pode executar o comando
shardingState
. Aplique esta ação ao recursocluster
.
splitVector
O usuário pode executar o comando
splitVector
. Aplique esta ação ao banco de dados ou recursos de coleta.
Ações de administração do servidor
applicationMessage
O usuário pode executar o comando
logApplicationMessage
. Aplique esta ação ao recursocluster
.
closeAllDatabases
O usuário pode executar o comando
closeAllDatabases
descontinuado. Aplique esta ação ao recursocluster
.
collMod
O usuário pode executar o comando
collMod
. Aplique esta ação ao banco de dados ou recursos de coleta.
compact
O usuário pode executar o comando
compact
. Aplique esta ação ao banco de dados ou recursos de coleta.
connPoolSync
O usuário pode executar o comando
connPoolSync
interno. Aplique esta ação ao recursocluster
.
convertToCapped
O usuário pode executar o comando
convertToCapped
. Aplique esta ação ao banco de dados ou recursos de coleta.
dropConnections
O usuário pode executar o comando
dropConnections
. Aplique esta ação ao recursocluster
.
dropDatabase
O usuário pode executar o comando
dropDatabase
. Aplique esta ação aos recursos do banco de dados.
dropIndex
O usuário pode executar o comando
dropIndexes
. Aplique esta ação ao banco de dados ou recursos de coleta.
forceUUID
Novidade na versão 3.6.
O usuário pode criar uma coleção com um UUID de coleção definido pelo usuário utilizando o comando
applyOps
.Aplique esta ação ao recurso
cluster
.
fsync
O usuário pode executar o comando
fsync
. Aplique esta ação ao recursocluster
.
getDefaultRWConcern
O usuário pode emitir o comando administrativo
getDefaultRWConcern
. Aplique esta ação ao recursocluster
.
getParameter
O usuário pode executar o comando
getParameter
. Aplique esta ação ao recursocluster
.
hostInfo
Fornece informações sobre o servidor em que a instância MongoDB é executada. Aplique esta ação ao recurso
cluster
.
oidReset
Necessário para redefinir a string aleatória de 5 bytes que é utilizada no ObjectID.
logRotate
O usuário pode executar o comando
logRotate
. Aplique esta ação ao recursocluster
.
reIndex
O usuário pode executar o comando
reIndex
. Aplique esta ação ao banco de dados ou recursos de coleta.
renameCollectionSameDB
Permite ao usuário renomear collections no banco de dados atual utilizando o comando
renameCollection
. Aplique esta ação aos recursos do banco de dados.Além disso, o usuário deve ter
find
na coleção de origem ou não terfind
na coleção de destino.Se uma coleção com o novo nome já existir, ele também deverá ter a ação
dropCollection
na coleção de destino.
rotateCertificates
O usuário pode executar o comando
rotateCertificates
comando. Aplique esta ação ao recursocluster
.
setDefaultRWConcern
O usuário pode emitir o comando administrativo
setDefaultRWConcern
. Aplique esta ação ao recursocluster
.
setParameter
O usuário pode executar o comando
setParameter
. Aplique esta ação ao recursocluster
.
shutdown
O usuário pode executar o comando
shutdown
. Aplique esta ação ao recursocluster
.
Ações da sessão
impersonate
Novidade na versão 3.6.
O usuário pode executar o comando
killAllSessionsByPattern
com o padrãousers
eroles
. Aplique esta ação ao recursocluster
.Para executar o comando
killAllSessionsByPattern
, os usuários também devem ter privilégios dekillAnySession
no recurso de agrupamento.
listSessions
Novidade na versão 3.6.
O usuário pode executar a operação
$listSessions
ou$listLocalSessions
para todos os usuários ou usuários especificados. Aplique esta ação ao recursocluster
.
killAnySession
Novidade na versão 3.6.
O usuário pode executar o comando
killAllSessions
ekillAllSessionsByPattern
. Aplique esta ação ao recursocluster
.
Ações de diagnóstico
collStats
O usuário pode executar o comando
collStats
. Aplique esta ação ao banco de dados ou recursos de coleta.
connPoolStats
O usuário pode executar o comando
connPoolStats
. Aplique esta ação ao recursocluster
.
dbHash
O usuário pode executar o comando
dbHash
. Aplique esta ação ao banco de dados ou recursos de coleta.
dbStats
O usuário pode executar o comando
dbStats
. Aplique esta ação aos recursos do banco de dados.
getCmdLineOpts
O usuário pode executar o comando
getCmdLineOpts
. Aplique esta ação ao recursocluster
.
getLog
O usuário pode executar o comando
getLog
. Aplique esta ação ao recursocluster
.
indexStats
O usuário pode executar o estágio do pipeline de agregação
$indexStats
. Aplique esta ação ao banco de dados ou recursos de coleta.Para utilizar a etapa
$indexStats
, os usuários devem autenticar com pelo menos o papelclusterMonitor
.
listDatabases
O usuário pode executar o comando
listDatabases
. Aplique esta ação ao recursocluster
.Se o usuário não tiver a ação de privilégio
listDatabases
, os usuários poderão executar o comandolistDatabases
para retornar uma lista de bases de dados para as quais o usuário tem privilégios (incluindo bancos de dados para as quais o usuário tem privilégios em coleções específicas) se o comando for executado com a opçãoauthorizedDatabases
não especificada ou definida comotrue
.
listCollections
O usuário pode executar o comando
listCollections
. Aplique esta ação aos recursos do banco de dados.Observação
Usuários sem o privilégio exigido podem executar o comando
listCollections
com ambas as opçõesauthorizedCollections
enameOnly
configuradas paratrue
. Nesse caso, o comando retorna apenas o nome e o tipo das collections para as quais o usuário tem privilégios.
listIndexes
O usuário pode executar o comando
listIndexes
. Aplique esta ação ao banco de dados ou recursos de coleta.
serverStatus
O usuário pode executar o comando
serverStatus
. Aplique esta ação ao recursocluster
.
validate
O usuário pode executar os comandos
validate
evalidateDBMetadata
. Aplique esta ação ao banco de dados ou recursos de coleta.
top
O usuário pode executar o comando
top
. Aplique esta ação ao recursocluster
.
Ações internas
anyAction
Permite qualquer ação em um recurso. Não atribua esta ação a menos que seja absolutamente necessária.
applyOps
O usuário pode executar o comando
applyOps
. Aplique esta ação a um recursocluster
.