|
MongoDB oferă acces la date și comenzi prin autorizare bazată pe roluri și oferă roluri integrate care oferă diferitele niveluri de acces necesare în mod obișnuit într-un sistem de baze de date. Poți, de asemenea, să creezi roluri definite de utilizator. Un rol acordă privilegii pentru a efectua seturi de acțiuni asupra resurselor definite. Un rol dat se aplică bazei de date pe care este definit și poate acorda acces până la nivelul de granularitate al colecției. Fiecare dintre rolurile încorporate ale MongoDB definește accesul la nivelul bazei de date pentru toate colecțiile non-sistemului din baza de date a rolului și la nivel de colecție pentru toate colecțiile de sistem. MongoDB oferă rolurile integrate de utilizator și administrare a bazei de date pe fiecare bază de date. MongoDB oferă toate celelalte roluri integrate doar în baza de date de administratori. Această secțiune descrie privilegiile pentru fiecare rol încorporat. De asemenea, poți vizualiza privilegiile pentru un rol încorporat oricând, emitând comanda rolesInfo cu showPrivileges și showBuiltinRolesfields ambele setate pe true. Roluri de utilizator în baza de dateFiecare bază de date include următoarele roluri de client: citeșteOferă posibilitatea de a citi date pentru toate colecțiile non-system și pentru următoarele colecții de sistem: system.indexes, colecțiile system.js și system.namespaces. Rolul oferă acces la citire prin acordarea următoarelor acțiuni: - collStats
- dbHash
- dbStats
- găsește
- killCursors
- listIndexes
- listă Colecții
readWriteOferă toate privilegiile rolului de citire plus posibilitatea de a modifica datele din toate colecțiile non-sistem și colecția system.js. Rolul oferă următoarele acțiuni pentru aceste colecții: - collStats
- convertToCap
- createCollection
- dbHash
- dbStats
- dropCollection
- createIndex
- dropIndex
- Capac gol
- găsește
- insert
- killCursors
- listIndexes
- listă Colecții
- îndepărtează
- renameCollectionSameDB
- Actualizare
Roluri de administrare a bazelor de dateFiecare bază de date include următoarele roluri de administrare a baze de date: dbAdminOferă următoarele acțiuni asupra colecțiilor system.indexes, system.namespaces și system.profile ale bazei de date: - collStats
- dbHash
- dbStats
- găsește
- killCursors
- listIndexes
- listă Colecții
- dropCollection și createCollection doar pe system.profile
Schimbat în versiunea 2.6.4: dbAdmin a adăugat createCollection pentru system.profilecollection. Versiunile anterioare aveau dropCollection doar pe system.profile collection.
Oferă următoarele acțiuni pentru toate colecțiile non-sistem. Acest rol nu include acces complet la citire pe colecțiile non-sistem: - OcoleșteDocumentValidare
- collMod
- collStats
- compact
- convertToCap
- createCollection
- createIndex
- dbStats
- dropCollection
- dropDatabase
- dropIndex
- enableProfiler
- reIndex
- renameCollectionSameDB
- repairDatabase
- stocareDetalii
- validează
dbOwnerProprietarul bazei de date poate efectua orice acțiune administrativă asupra bazei de date. Acest rol combină privilegiile acordate de rolurile readWrite, dbAdmin și userAdmin. userAdminOferă posibilitatea de a crea și modifica roluri și utilizatori în baza de date curentă. Acest rol oferă, indirect, de asemenea, acces superutilizatorului fie la baza de date, fie, dacă este inclus în baza de date administrativă, la cluster. Rolul AdministratorUtilizator permite utilizatorilor să acorde oricărui utilizator orice privilegiu, inclusiv ei înșiși. Rolul userAdmin oferă explicit următoarele acțiuni: - changeCustomData
- changePassword
- createRole
- createUser
- dropRole
- dropUser
- GrantRol
- revokeRol
- viewRol
- viewUser
Roluri de administrare a clusterelorBaza de date a administratorilor include următoarele roluri pentru administrarea întregului sistem, nu doar a unei singure baze de date. Aceste roluri includ, dar nu se limitează la, funcții administrative de set replici și clustere fragmentate. clusterAdminOferă cel mai bun acces la managementul clusterelor. Acest rol combină privilegiile acordate de rolurile theclusterManager, clusterMonitor și hostManager. În plus, rolul oferă acțiunea dropDatabase. clusterManagerAsigură acțiuni de management și monitorizare asupra clusterului. Un utilizator cu acest rol poate accesa bazele de date locale și config, care sunt folosite în sharding și replicare, respectiv. Oferă următoarele acțiuni asupra întregului cluster: - addShard
- applicationMessage
- curățenieOrfan
- flushRouterConfig
- listShards
- removeShard
- replSetConfigure
- replSetGetConfig
- replSetGetStatus
- replSetStateChange
- resincronizare
Oferă următoarele acțiuni pentru toate bazele de date din cluster: - enpermiting Sharding
- moveChunk
- splitChunk
- splitVector
În baza de date de configurare, oferă următoarele acțiuni în colecția de setări: - insert
- îndepărtează
- Actualizare
În baza de date de configurare, se oferă următoarele acțiuni pentru toate colecțiile de configurație și pentru colecțiile thesystem.indexes, system.js și system.namespaces: - collStats
- dbHash
- dbStats
- găsește
- killCursors
Pe baza de date locală, oferă următoarele acțiuni asupra colecției replset: - collStats
- dbHash
- dbStats
- găsește
- killCursors
clusterMonitorOferă acces doar în citire la instrumente de monitorizare, cum ar fi MongoDB Cloud Manager și agentul de monitorizare Ops Manager. Oferă următoarele acțiuni asupra întregului cluster: - connPoolStats
- cursorInfo
- getCmdLineOpts
- getLog
- getParameter
- getShardMap
- hostInfo
- inprog
- listBaze de date
- listShards
- netstat
- replSetGetStatus
- replSetGetConfig
- serverStatus
- ShardingState
- sus
Oferă următoarele acțiuni pentru toate bazele de date din cluster: - collStats
- dbStats
- getShardVersion
- indexStats
Oferă acțiunea de găsire pentru toate colecțiile system.profile din cluster. Oferă următoarele acțiuni asupra colecțiilor de configurare și colecțiilor system.indexes, system.js și system.namespaces ale bazei de date de configurație: - collStats
- dbHash
- dbStats
- găsește
- killCursors
hostManagerOferă posibilitatea de a monitoriza și gestiona servere. Oferă următoarele acțiuni asupra întregului cluster: - applicationMessage
- closeAllDatabases
- connPoolSync
- cpuProfiler
- diagLogging
- flushRouterConfig
- fsync
- invalidateUserCache
- killop
- logRotate
- resincronizare
- setParameter
- Închidere
- atingere
- Deblochează
Oferă următoarele acțiuni pentru toate bazele de date din cluster: - killCursors
- repairDatabase
Roluri de backup și restaurareBaza de date administrativă include următoarele roluri pentru backup-ul și restaurarea datelor: RezervăOferă privilegii minime necesare pentru backup-ul datelor. Acest rol oferă suficiente privilegii pentru a folosi agentul de backup MongoDB Cloud Manager, agentul de backup Ops Manager sau pentru a folosi mongodump pentru a face backup întregii instanțe mongod. Oferă acțiunile de inserare și actualizare pe colecția mms.backup din baza de date de administrare și pe colecția de setări din baza de date de configurare. Oferă acțiunea listDatabases asupra întregului cluster. Oferă acțiunea listCollections pe toate bazele de date. Oferă acțiunea listIndexes pentru toate colecțiile. Oferă acțiunea bypassDocumentValidation pentru colecțiile care au validare a documentelor. Oferă acțiunea de găsire a următoarelor: - toate colecțiile non-sistemului din cluster
- toate următoarele colecții de sistem din cluster: system.indexes, system.namespaces și system.js
- Colecțiile admin.system.users și admin.system.roles
- Colecția config.settings
- colecții vechi system.users din versiunile MongoDB anterioare 2.6
Schimbat în versiunea 3.2.1: Rolul de backup oferă privilegii suplimentare pentru a face backup la colecțiile system.profile care există atunci când rulează cu profilare a bazei de date. Anterior, utilizatorii aveau nevoie de acces suplimentar la lectură pentru această colecție. RestaurareOferă privilegiile necesare pentru restaurarea datelor din backup-uri care nu includ date system.profilecollection. Acest rol este suficient atunci când se restaurează date cu mongorestore fără opțiunea --oplogReplay. Dacă datele de backup includ date de colecție system.profile și baza de date țintă nu conține colecția system.profile, mongorestore încearcă să creeze colecția chiar dacă Programul nu restaurează efectiv documentele system.profile. Astfel, utilizatorul are nevoie de privilegii suplimentare pentru a efectua acțiuni createCollection și convertToCapped pe colecția system.profile pentru o bază de date. Rolurile încorporate dbAdmin și dbAdminAnyDatabase oferă privilegii suplimentare. Dacă rulezi mongorestore cu --oplogReplay, rolul de restaurare este insuficient pentru a rejuca oplogul. Pentru a reda oplog-ul, creează un rol definit de utilizator care are anyAction pe anyResource și acordă doar utilizatorilor care trebuie să ruleze mongorestore cu --oplogReplay.
Oferă următoarele acțiuni pentru toate colecțiile non-sistemului și system.js colecții din cluster; pe colecțiile admin.system.users și admin.system.roles din baza de date de administratori; și pe colecțiile vechi system.users din versiunile MongoDB anterioare 2.6: - collMod
- createCollection
- createIndex
- dropCollection
- insert
Oferă acțiunea listCollections pe toate bazele de date. Oferă următoarele acțiuni suplimentare pe admin.system.users și system.userscollections vechi: - găsește
- îndepărtează
- Actualizare
Oferă acțiunea find pentru toate colecțiile system.namespaces din cluster. Deși, restaurarea include posibilitatea de a modifica documentele din admin.system.userscollection folosind operații normale de modificare, să modifici aceste date doar prin gestionarea utilizatorilor Metode.
Roluri exclusiv bazate de dateBaza de date de administratori oferă următoarele roluri care se aplică tuturor bazelor de date dintr-o instanță mongod și sunt aproximativ echivalente cu echivalentele lor dintr-o singură bază de date: readAnyDatabaseOferă aceleași permisiuni doar de citire ca și citirea, cu excepția faptului că se aplică tuturor bazelor de date din cluster. Rolul oferă, de asemenea, acțiunea listDatabases asupra întregului cluster. readWriteAnyDatabaseOferă aceleași permisiuni de citire și scriere ca readWrite, cu excepția faptului că se aplică tuturor bazelor de date din cluster. Rolul oferă, de asemenea, acțiunea listDatabases asupra întregului cluster. userAdminAnyDatabaseOferă același acces la operațiunile de administrare a utilizatorilor ca userAdmin, cu excepția faptului că se aplică tuturor bazelor de date din cluster. Rolul oferă, de asemenea, următoarele acțiuni asupra întregului cluster: - authSchemaUpgrade
- invalidateUserCache
- listBaze de date
Rolul oferă, de asemenea, următoarele acțiuni asupra colecțiilor admin.system.users și admin.system.roles din baza de date a administratorilor și asupra colecțiilor system.users vechi din versiunile MongoDB înainte de versiunea 2.6: - collStats
- dbHash
- dbStats
- găsește
- killCursors
- planCacheRead
Modificat în versiunea 2.6.4: userAdminAnyDatabase a adăugat următoarele permisiuni asupra colecțiilor admin.system.users și admin.system.roles:
Rolul userAdminAnyDatabase nu restricționează permisiunile pe care un utilizator le poate acorda. Ca urmare, utilizatorii userAdminAnyDatabase își pot acorda privilegii în plus față de cele actuale și chiar pot acorda toate privilegiile, chiar dacă rolul nu o face autorizați explicit privilegii dincolo de administrarea utilizatorilor. Acest rol este practic un superutilizator de sistem MongoDB. dbAdminAnyDatabaseOferă același acces la operațiunile de administrare a bazelor de date ca dbAdmin, cu excepția faptului că se aplică tuturor bazelor de date din cluster. Rolul oferă, de asemenea, acțiunea listDatabases asupra întregului cluster.
Roluri de superutilizatorMai multe roluri oferă acces indirect sau direct pentru superutilizatori la nivelul întregului sistem. Următoarele roluri oferă posibilitatea de a atribui oricărui utilizator orice privilegiu pe orice bază de date, ceea ce înseamnă că utilizatorii cu unul dintre aceste roluri își pot atribui orice privilegiu pe orice bază de date: - Rol dbOwner, când este extins în baza de date de administratori
- rolul userAdmin, când este încadrat în baza de date de administratori
- rolul userAdminAnyDatabase
Următorul rol oferă privilegii complete asupra tuturor resurselor: rădăcinăOferă acces la operațiunile și toate resursele readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin, rolurile de restaurare combinate. Schimbat în versiunea 3.0.7: Root-ul are acțiunea de validare a sistemului. Colecții. Anterior, root nu includea acces la colecțiile care încep cu sistemul. prefix other thansystem.indexes și system.namespaces. Rolul rădăcină include privilegii din rolul de restaurare.
Rol intern__systemMongoDB atribuie acest rol obiectelor utilizator care reprezintă membri ai clusterului, cum ar fi membrii mulțimii replici și instanțele mongos. Rolul îi conferă titularului dreptul de a lua orice acțiune împotriva oricărui obiect din baza de date. Nu atribuiți acest rol obiectelor utilizator care reprezintă aplicații sau administratori umani, decât în circumstanțe excepționale. Dacă ai nevoie de acces la toate acțiunile de pe toate resursele, de exemplu pentru a rula comenzi applyOps, nu atribui acest rol. În schimb, creează un rol definit de utilizator care acordă anyAction pe anyResource și asigură-te că doar utilizatorii care au nevoie de acces la aceste operațiuni au acest acces. Original: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|