|
MongoDB concede l'accesso a dati e comandi tramite autorizzazione basata sui ruoli e fornisce ruoli integrati che forniscono i diversi livelli di accesso comunemente necessari in un sistema di database. Puoi anche creare ruoli definiti dall'utente. Un ruolo concede privilegi per eseguire insiemi di azioni su risorse definite. Un dato ruolo si applica al database su cui è definito e può concedere accesso fino a un livello di granularità della collezione. Ciascuno dei ruoli integrati di MongoDB definisce l'accesso a livello di database per tutte le collezioni non di sistema nel database del ruolo e a livello di collezione per tutte le collezioni di sistema. MongoDB fornisce i ruoli integrati di utente e amministrazione del database su ogni database. MongoDB fornisce tutti gli altri ruoli integrati solo nel database amministrativo. Questa sezione descrive i privilegi per ciascun ruolo integrato. Puoi anche visualizzare i privilegi per un ruolo integrato in qualsiasi momento emettendo il comando rolesInfo con showPrivileges e showBuiltinRolesfields entrambi impostati su true. Ruoli degli utenti del databaseOgni database include i seguenti ruoli clienti: leggiFornisce la possibilità di leggere dati su tutte le collezioni non di sistema e sulle seguenti collezioni di sistema: system.indexes, system.js e system.namespaces. Il ruolo fornisce accesso per letture concedendo le seguenti azioni: - collStats
- dbHash
- dbStats
- trova
- killCursors
- listIndici
- Elenco Collezioni
readWriteFornisce tutti i privilegi del ruolo di lettura più la possibilità di modificare i dati su tutte le collezioni non di sistema e sulla collezione system.js. Il ruolo prevede le seguenti azioni su tali raccolte: - collStats
- convertToCapped
- createCollection
- dbHash
- dbStats
- dropCollection
- createIndex
- dropIndex
- a vuoto
- trova
- inserimento
- killCursors
- listIndici
- Elenco Collezioni
- rimuovere
- renameCollectionSameDB
- aggiornamento
Ruoli di Amministrazione di DatabaseOgni database include i seguenti ruoli di amministrazione database: dbAdminFornisce le seguenti azioni sulle collezioni system.indexes, system.namespaces e system.profile del database: - collStats
- dbHash
- dbStats
- trova
- killCursors
- listIndici
- Elenco Collezioni
- dropCollection e createCollection solo su system.profile
Modificato nella versione 2.6.4: dbAdmin ha aggiunto la createCollection per la system.profilecollection. Le versioni precedenti avevano solo la dropCollection nella collezione system.profile.
Fornisce le seguenti azioni su tutte le collezioni non di sistema. Questo ruolo non include l'accesso completo alla lettura nelle collezioni non di sistema: - bypassDocumentValidation
- collMod
- collStats
- compatto
- convertToCapped
- createCollection
- createIndex
- dbStats
- dropCollection
- dropDatabase
- dropIndex
- enableProfiler
- reIndex
- renameCollectionSameDB
- repairDatabase
- ArchivioDettagli
- valida
dbOwnerIl proprietario del database può eseguire qualsiasi azione amministrativa sul database. Questo ruolo combina i privilegi concessi dai ruoli readWrite, dbAdmin e userAdmin. userAdminFornisce la possibilità di creare e modificare ruoli e utenti nel database corrente. Questo ruolo fornisce anche indirettamente accesso ai superutenti sia al database o, se applicato al database amministrativo, al cluster. Il ruolo UserAdmin consente agli utenti di concedere qualsiasi privilegio a qualsiasi utente, compresi se stessi. Il ruolo userAdmin fornisce esplicitamente le seguenti azioni: - changeCustomData
- cambiaPassword
- createRole
- createUser
- dropRole
- dropUser
- GrantRuolo
- revocaRuolo
- viewRuolo
- viewUser
Ruoli di Amministrazione dei ClusterIl database amministrativo include i seguenti ruoli per l'amministrazione dell'intero sistema, piuttosto che un solo database. Questi ruoli includono, ma non sono limitati a, funzioni amministrative di set replica e cluster sharded. clusterAdminOffre il massimo accesso alla gestione del cluster. Questo ruolo combina i privilegi concessi dai ruoli theclusterManager, clusterMonitor e hostManager. Inoltre, il ruolo fornisce l'azione dropDatabase. ClusterManagerFornisce azioni di gestione e monitoraggio sul cluster. Un utente con questo ruolo può accedere ai database locali di configurazione e di Configurazione, utilizzati rispettivamente nello sharding e nella replicazione. Fornisce le seguenti azioni sull'intero cluster: - addShard
- applicationMessage
- Pulizia Orfano
- flushRouterConfig
- listShards
- removeShard
- replSetConfigure
- replSetGetConfig
- replSetGetStatus
- replSetStateChange
- resync
Fornisce le seguenti azioni su tutti i database del cluster: - enableSharding
- moveChunk
- splitChunk
- splitVector
Nel database di configurazione, fornisce le seguenti azioni nella collezione impostazioni: - inserimento
- rimuovere
- aggiornamento
Nel database di configurazione, vengono fornite le seguenti azioni su tutte le collezioni di configurazione e sulle collezioni thesystem.indexes, system.js e system.namespaces: - collStats
- dbHash
- dbStats
- trova
- killCursors
Nel database locale, fornisce le seguenti azioni sulla collezione replset: - collStats
- dbHash
- dbStats
- trova
- killCursors
clusterMonitorFornisce accesso in sola lettura a strumenti di monitoraggio, come MongoDB Cloud Manager e l'agente di monitoraggio Ops Manager. Fornisce le seguenti azioni sull'intero cluster: - connPoolStats
- cursorInfo
- getCmdLineOpts
- getLog
- getParameter
- getShardMap
- hostInfo
- inprog
- listDatabases
- listShards
- netstat
- replSetGetStatus
- replSetGetConfig
- serverStatus
- Stato di sharding.
- In alto
Fornisce le seguenti azioni su tutti i database del cluster: - collStats
- dbStats
- getShardVersion
- indexStats
Fornisce l'azione di ricerca su tutte le collezioni system.profile nel cluster. Fornisce le seguenti azioni sulle collezioni di configurazione del database di configurazione e, system.js e system.namespaces, collezioni di spazi di configurazione (system.namespaces): - collStats
- dbHash
- dbStats
- trova
- killCursors
hostManagerFornisce la capacità di monitorare e gestire i server. Fornisce le seguenti azioni sull'intero cluster: - applicationMessage
- closeAllDatabases
- connPoolSync
- cpuProfiler
- diagLogging
- flushRouterConfig
- fsync
- invalidateUserCache
- killop
- logRotate
- resync
- setParameter
- Chiusura
- Toccare
- sblocca
Fornisce le seguenti azioni su tutti i database del cluster: - killCursors
- repairDatabase
Ruoli di backup e restauroIl database amministrativo include i seguenti ruoli per il backup e il ripristino dei dati: BackupFornisce privilegi minimi necessari per il backup dei dati. Questo ruolo offre privilegi sufficienti per utilizzare l'agente di backup MongoDB Cloud Manager, l'agente di backup Ops Manager o per usare mongodump per fare il backup di un'intera istanza mongod. Fornisce le azioni di inserimento e aggiornamento sulla collezione mms.backup nel database amministrativo e sulla collezione impostazioni nel database di configurazione. Fornisce l'azione listDatabases sull'intero cluster. Fornisce l'azione listCollections su tutti i database. Fornisce l'azione listIndexes per tutte le collezioni. Fornisce l'azione bypassDocumentValidation per le collezioni che hanno validazione documentale. Fornisce l'azione di ricerca sui seguenti aspetti: - tutte le collezioni non di sistema nel cluster
- tutte le seguenti collezioni di sistema nel cluster: system.indexes, system.namespaces e system.js
- Le collezioni admin.system.users e admin.system.roles
- La collezione config.settings
- raccolte legacy.user.user di versioni di MongoDB precedenti alla 2.6
Modificato nella versione 3.2.1: Il ruolo di backup offre privilegi aggiuntivi per fare il backup delle collezioni di profili di sistema che esistono quando si esegue con profiling database. In precedenza, gli utenti richiedevano un accesso aggiuntivo alla lettura su questa raccolta. RestauroFornisce i privilegi necessari per ripristinare dati da backup che non includono dati system.profilecollection. Questo ruolo è sufficiente quando si ripristinano dati con mongorestore senza l'opzione --oplogReplay. Se i dati di backup includono dati di raccolta system.profile e il database di destinazione non contiene la raccolta system.profile, mongorestore tenta di creare la collezione anche se Il programma in realtà non ripristina i documenti system.profile. Pertanto, l'utente necessita di privilegi aggiuntivi per eseguire le azioni createCollection e convertToCapped sulla collezione system.profile per un database. I ruoli integrati dbAdmin e dbAdminAnyDatabase forniscono privilegi aggiuntivi. Se si esegue mongorestore con --oplogReplay, il ruolo di restore non è sufficiente per riprodurre l'oplog. Per riprodurre l'oplog, crea un ruolo definito dall'utente che abbia anyAction su anyResource e concedi solo agli utenti che devono eseguire mongorestore con --oplogReplay.
Fornisce le seguenti azioni su tutte le collezioni non di sistema e system.js collezioni nel cluster; nelle collezioni admin.system.users e admin.system.roles nel database admin; e sulle collezioni legacy system.users di versioni di MongoDB precedenti alla 2.6: - collMod
- createCollection
- createIndex
- dropCollection
- inserimento
Fornisce l'azione listCollections su tutti i database. Fornisce le seguenti azioni aggiuntive su admin.system.users e system.userscollections legacy: - trova
- rimuovere
- aggiornamento
Fornisce l'azione di ricerca su tutte le collezioni system.namespaces nel cluster. Sebbene il ripristino includa la possibilità di modificare i documenti nella collezione admin.system.usersusers utilizzando normali operazioni di modifica, modificare questi dati solo tramite la gestione utenti Metodi.
Ruoli Tutti DatabaseIl database amministrativo fornisce i seguenti ruoli che si applicano a tutti i database in un'istanza mongod e sono approssimativamente equivalenti ai loro equivalenti a un singolo database: readAnyDatabaseFornisce gli stessi permessi di sola lettura del database, tranne che si applica a tutti i database del cluster. Il ruolo fornisce anche l'azione listDatabases sull'intero cluster. readWriteAnyDatabaseFornisce gli stessi permessi di lettura e scrittura di readWrite, tranne che si applica a tutti i database nel cluster. Il ruolo fornisce anche l'azione listDatabases sull'intero cluster. userAdminAnyDatabaseFornisce lo stesso accesso alle operazioni di amministrazione utente di userAdmin, tranne che si applica a tutti i database nel cluster. Il ruolo fornisce anche le seguenti azioni sull'intero cluster: - authSchemaUpgrade
- invalidateUserCache
- listDatabases
Il ruolo fornisce inoltre le seguenti azioni sulle collezioni admin.system.users andadmin.system.roles nel database amministratore, e sulle collezioni legacy.usersusers delle versioni di MongoDB prima della 2.6: - collStats
- dbHash
- dbStats
- trova
- killCursors
- planCacheRead
Modificato nella versione 2.6.4: userAdminAnyDatabase ha aggiunto i seguenti permessi sulle collezioni admin.system.users e admin.system.roles:
Il ruolo userAdminAnyDatabase non limita i permessi che un utente può concedere. Di conseguenza, gli utenti di userAdminAnyDatabase possono concedersi privilegi superiori a quelli attuali e persino concedersi tutti i privilegi, anche se il ruolo non lo fa autorizzare esplicitamente privilegi oltre l'amministrazione da parte dell'utente. Questo ruolo è di fatto un superutente di sistema MongoDB. dbAdminAnyDatabaseFornisce lo stesso accesso alle operazioni di amministrazione del database di dbAdmin, tranne che si applica a tutti i database nel cluster. Il ruolo fornisce anche l'azione listDatabases sull'intero cluster.
Ruoli di superutenteDiversi ruoli forniscono accesso indiretto o diretto a superutente a livello di sistema. I seguenti ruoli offrono la possibilità di assegnare a qualsiasi utente qualsiasi privilegio su qualsiasi database, il che significa che gli utenti con uno di questi ruoli possono assegnarsi qualsiasi privilegio su qualsiasi database: - ruolo dbOwner, quando viene inserito nel database amministrativo
- ruolo userAdmin, quando viene assegnato al database amministratore
- ruolo userAdminAnyDatabase
Il seguente ruolo offre pieni privilegi su tutte le risorse: radiceFornisce accesso alle operazioni e a tutte le risorse dei ruoli readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin, restauro combinato. Modificato nella versione 3.0.7: La root ha un'azione di validazione sul sistema. Collezioni. In precedenza, root non includeva alcun accesso alle collezioni che iniziano dal sistema. prefisso diverso da system.indexes e system.namespaces. Il ruolo root include privilegi dal ruolo di ripristino.
Ruolo interno__systemMongoDB assegna questo ruolo agli oggetti utente che rappresentano membri del cluster, come i membri del set replica e le istanze mongos. Il ruolo dà al titolare il diritto di intraprendere qualsiasi azione contro qualsiasi oggetto nel database. Non assegnare questo ruolo agli oggetti utente che rappresentano applicazioni o amministratori umani, se non in circostanze eccezionali. Se hai bisogno di accedere a tutte le azioni su tutte le risorse, ad esempio per eseguire comandi applyOps, non assegnare questo ruolo. Invece, crea un ruolo definito dall'utente che conceda anyAction su qualsiasi risorsa e assicurati che solo gli utenti che necessitano di accesso a queste operazioni abbiano tale accesso. Originale: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|