|
O MongoDB concede acesso a dados e comandos por meio de autorização baseada em funções e fornece funções integradas que proporcionam os diferentes níveis de acesso comumente necessários em um sistema de banco de dados. Você também pode criar papéis definidos pelo usuário. Um papel concede privilégios para realizar conjuntos de ações sobre recursos definidos. Um determinado papel se aplica ao banco de dados no qual está definido e pode conceder acesso até um nível de granularidade de coleção. Cada um dos papéis incorporados ao MongoDB define o acesso no nível do banco de dados para todas as coleções não relacionadas ao sistema no banco de dados do papel e no nível da coleção para todas as coleções do sistema. O MongoDB fornece os papéis integrados de usuário e administração de banco de dados em cada banco de dados. O MongoDB fornece todas as outras funções integradas apenas no banco de dados administrativo. Esta seção descreve os privilégios para cada função incorporada. Você também pode visualizar os privilégios de um papel embutido a qualquer momento, emitindo o comando rolesInfo com os campos showPrivileges e showBuiltinRolesfields ambos configurados como true. Funções de Usuário de Banco de DadosCada banco de dados inclui os seguintes papéis de cliente: LeiaOferece a capacidade de ler dados de todas as coleções não relacionadas ao sistema e das seguintes coleções do sistema: system.indexes, coleções system.js e system.namespaces. O papel oferece acesso de leitura ao conceder as seguintes ações: - collStats
- dbHash
- dbStats
- encontrar
- killCursors
- listIndexes
- lista Coleções
readWriteOferece todos os privilégios do papel de leitura, além da capacidade de modificar dados em todas as coleções não relacionadas ao sistema e na coleção system.js. O cargo oferece as seguintes ações nessas coleções: - collStats
- convertToCapped
- createCollection
- dbHash
- dbStats
- dropCollection
- createIndex
- dropIndex
- vazio
- encontrar
- Inserir
- killCursors
- listIndexes
- lista Coleções
- remover
- renameCollectionSameDB
- Atualização
Funções de Administração de Banco de DadosCada banco de dados inclui as seguintes funções administrativas de banco de dados: dbAdminFornece as seguintes ações nas coleções system.indexes, system.namespaces e system.profile do banco de dados: - collStats
- dbHash
- dbStats
- encontrar
- killCursors
- listIndexes
- lista Coleções
- dropCollection e createCollection apenas no system.profile
Alterado na versão 2.6.4: o dbAdmin adicionou a createCollection para o system.profilecollection. Versões anteriores só tinham o dropCollection na coleção system.profile.
Fornece as seguintes ações em todas as coleções não relacionadas ao sistema. Este papel não inclui acesso total de leitura em coleções não do sistema: - BypassDocumentValidation
- collMod
- collStats
- compacto
- convertToCapped
- createCollection
- createIndex
- dbStats
- dropCollection
- dropDatabase
- dropIndex
- enableProfiler
- reIndex
- renameCollectionSameDB
- repairDatabase
- storageDetalhes
- validar
dbOwnerO proprietário do banco de dados pode realizar qualquer ação administrativa no banco de dados. Essa função combina os privilégios concedidos pelos papéis readWrite, dbAdmin e userAdmin. userAdminOferece a capacidade de criar e modificar papéis e usuários no banco de dados atual. Essa função também fornece indiretamente acesso de superusuário ao banco de dados ou, se for direcionado ao banco de dados administrativo, ao cluster. O papel AdministradorUsuário permite que os usuários concedam qualquer privilégio a qualquer usuário, inclusive a si mesmos. O papel de userAdmin fornece explicitamente as seguintes ações: - changeCustomData
- changePassword
- createRole
- createUser
- dropRole
- dropUser
- Bolsa Papel
- revokePapel
- viewPapel
- viewUser
Funções de Administração de ClusterO banco de dados administrativo inclui as seguintes funções para administrar todo o sistema, em vez de apenas um único banco de dados. Esses papéis incluem, mas não se limitam a, funções administrativas de conjuntos de réplicas e clusters fragmentados. clusterAdminOferece o maior acesso ao gerenciamento de clusters. Esse papel combina os privilégios concedidos pelos papéis theclusterManager, clusterMonitor e hostManager. Além disso, a função fornece a ação thedropDatabase. clusterManagerFornece ações de gerenciamento e monitoramento no cluster. Um usuário com essa função pode acessar os bancos de dados locais de configand e local, que são usados em sharding e replicação, respectivamente. Fornece as seguintes ações sobre o cluster como um todo: - addShard
- applicationMessage
- limpeza órfão
- flushRouterConfig
- listShards
- removeShard
- replSetConfigure
- replSetGetConfig
- replSetGetStatus
- replSetStateChange
- resincronização
Fornece as seguintes ações em todos os bancos de dados do cluster: - enableSharding
- moveChunk
- splitChunk
- splitVector
No banco de dados de configuração, fornece as seguintes ações na coleção de configurações: - Inserir
- remover
- Atualização
No banco de dados de configuração, são apresentadas as seguintes ações em todas as coleções de configuração e nas coleções thesystem.indexes, system.js e system.namespaces: - collStats
- dbHash
- dbStats
- encontrar
- killCursors
No banco de dados local, fornece as seguintes ações na coleção replset: - collStats
- dbHash
- dbStats
- encontrar
- killCursors
clusterMonitorOferece acesso somente leitura a ferramentas de monitoramento, como o MongoDB Cloud Manager e o agente de monitoramento Ops Manager. Fornece as seguintes ações sobre o cluster como um todo: - connPoolStats
- cursorInfo
- getCmdLineOpts
- getLog
- getParameter
- getShardMap
- hostInfo
- inprog
- listDatabases
- listShards
- netstat
- replSetGetStatus
- replSetGetConfig
- serverStatus
- ShardingState
- Início
Fornece as seguintes ações em todos os bancos de dados do cluster: - collStats
- dbStats
- getShardVersion
- indexStats
Fornece a ação de encontrar em todas as coleções system.profile no cluster. Fornece as seguintes ações nas coleções de configuração do banco de dados de configuração e, coleções system.indexes, system.js e system.namespaces: - collStats
- dbHash
- dbStats
- encontrar
- killCursors
hostManagerOferece a capacidade de monitorar e gerenciar servidores. Fornece as seguintes ações sobre o cluster como um todo: - applicationMessage
- closeAllDatabases
- connPoolSync
- cpuProfiler
- diagLogging
- flushRouterConfig
- fsync
- invalidateUserCache
- killop
- logRotate
- resincronização
- setParameter
- Desligamento
- Tocar
- desbloquear
Fornece as seguintes ações em todos os bancos de dados do cluster: - killCursors
- repairDatabase
Funções de Backup e RestauraçãoO banco de dados administrativo inclui as seguintes funções para backup e restauração de dados: ReservaOferece privilégios mínimos necessários para backup de dados. Esse papel oferece privilégios suficientes para usar o agente de backup do MongoDB Cloud Manager, o agente de backup do Ops Manager ou para usar o mongodump para fazer backup de uma instância completa do Mongod. Fornece as ações de inserção e atualização na coleção mms.backup no banco de dados de administração e na coleção de configurações no banco de dados de configuração. Fornece a ação listDatabases sobre o cluster como um todo. Fornece a ação listCollections em todos os bancos de dados. Fornece a ação listIndexes para todas as coleções. Fornece a ação bypassDocumentValidation para coleções que possuem validação de documentos. Fornece a ação de encontrar sobre o seguinte: - todas as coleções não do sistema no cluster
- todas as seguintes coleções do sistema no cluster: system.indexes, system.namespaces e system.js
- as coleções admin.system.users e admin.system.roles
- A coleção config.settings
- coleções legadas system.users de versões anteriores ao 2.6 do MongoDB
Alterado na versão 3.2.1: O papel de backup oferece privilégios adicionais para fazer backup das coleções thesystem.profile que existem ao rodar com perfil de banco de dados. Anteriormente, os usuários precisavam de um acesso adicional de leitura nesta coleção. RestauraçãoFornece privilégios necessários para restaurar dados de backups que não incluem dados system.profilecollection. Esse papel é suficiente ao restaurar dados com mongorestore sem a opção --oplogReplay. Se os dados de backup incluírem dados de coleta system.profile e o banco de dados alvo não contiver a coleção system.profile, o mongorestore tenta criar a coleção mesmo que O programa na verdade não restaura documentos do system.profile. Assim, o usuário precisa de privilégios adicionais para realizar ações createCollection e convertToCapped na coleção system.profile para um banco de dados. Os papéis integrados dbAdmin e dbAdminAnyDatabase fornecem privilégios adicionais. Se estiver rodando mongorestore com --oplogReplay, o papel de restauração é insuficiente para reproduzir o oplog. Para reproduzir o oplog, crie um papel definido pelo usuário que tenha anyAction em qualquer Recurso e conceda apenas a usuários que precisam rodar mongorestore com --oplogReplay.
Fornece as seguintes ações em todas as coleções não relacionadas ao sistema e coleções system.js no cluster; nas coleções admin.system.users e admin.system.roles no banco de dados de administradores; e em coleções legadas do system.users de versões anteriores ao 2.6: - collMod
- createCollection
- createIndex
- dropCollection
- Inserir
Fornece a ação listCollections em todos os bancos de dados. Fornece as seguintes ações adicionais em admin.system.users e system.userscollections legados: - encontrar
- remover
- Atualização
Fornece a ação de encontrar em todas as coleções system.namespaces do cluster. Embora o restauro inclua a capacidade de modificar os documentos na admin.system.userscollection usando operações normais de modificação, só modificar esses dados usando o gerenciamento de usuários métodos.
Funções de Todos os Bancos de DadosO banco de dados administrativo fornece as seguintes funções que se aplicam a todos os bancos de dados em uma instância mongod e são aproximadamente equivalentes aos equivalentes de banco de dados único: readAnyDatabaseFornece as mesmas permissões de somente leitura que a leitura, exceto que se aplica a todos os bancos de dados do cluster. A função também fornece a ação listDatabases sobre o cluster como um todo. readWriteAnyDatabaseFornece as mesmas permissões de leitura e gravação que o readWrite, exceto que se aplica a todos os bancos de dados do cluster. A função também fornece a ação listDatabases sobre o cluster como um todo. userAdminAnyDatabaseFornece o mesmo acesso às operações de administração de usuários que o userAdmin, exceto que se aplica a todos os bancos de dados do cluster. O papel também oferece as seguintes ações sobre o cluster como um todo: - authSchemaUpgrade
- invalidateUserCache
- listDatabases
O papel também fornece as seguintes ações nas coleções admin.system.users andadmin.system.roles no banco de dados de administradores, e nas coleções legadas system.users de versões de MongoDB antes da 2.6: - collStats
- dbHash
- dbStats
- encontrar
- killCursors
- planCacheRead
Alterado na versão 2.6.4: userAdminAnyDatabase adicionou as seguintes permissões nas coleções theadmin.system.users e admin.system.roles:
O papel userAdminAnyDatabase não restringe as permissões que um usuário pode conceder. Como resultado, usuários do userAdminQualquerBase de Dados podem conceder a si mesmos privilégios além dos atuais e até conceder todos os privilégios, mesmo que a função não o faça Autorize explicitamente privilégios além da administração do usuário. Esse papel é efetivamente um superusuário do sistema MongoDB. dbAdminAnyDatabaseFornece o mesmo acesso às operações de administração de banco de dados que o dbAdmin, exceto que se aplica a todos os bancos de dados do cluster. A função também fornece a ação listDatabases sobre o cluster como um todo.
Papéis de SuperusuárioDiversos papéis oferecem acesso indireto ou direto para superusuários em todo o sistema. Os seguintes papéis oferecem a capacidade de atribuir qualquer privilégio a qualquer usuário em qualquer banco de dados, o que significa que usuários com uma dessas funções podem atribuir a si mesmos qualquer privilégio em qualquer banco de dados: - função dbOwner, quando direcionada para o banco de dados de administrador
- função userAdmin, quando escopada para o banco de dados de administrador
- Função userAdminAnyDatabase
O seguinte papel oferece privilégios completos sobre todos os recursos: raizFornece acesso às operações e a todos os recursos dos papéis readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin, restauração combinada. Alterado na versão 3.0.7: A raiz tem a ação de validação no sistema. Cobranças. Anteriormente, o root não incluía acesso a coleções que começam com o sistema. prefixo diferente de sistema.índices e espaços-denomes do sistema. O papel raiz inclui privilégios do papel de restauração.
Função Interna__systemO MongoDB atribui esse papel a objetos de usuário que representam membros do cluster, como membros de conjuntos de réplicas e instâncias de mongos. O papel dá ao titular o direito de tomar qualquer ação contra qualquer objeto no banco de dados. Não atribua essa função a objetos de usuário que representam aplicações ou administradores humanos, exceto em circunstâncias excepcionais. Se você precisar de acesso a todas as ações em todos os recursos, por exemplo, para executar comandos applyOps, não atribua essa função. Em vez disso, crie um papel definido pelo usuário que conceda qualquer Ação em qualquer Recurso e garanta que apenas os usuários que precisam de acesso a essas operações tenham esse acesso. Original: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|