|
MongoDB omogoča dostop do podatkov in ukazov preko avtorizacije na podlagi vlog ter zagotavlja vgrajene vloge, ki zagotavljajo različne ravni dostopa, ki so običajno potrebne v podatkovnem sistemu. Lahko tudi ustvarite vloge, ki jih določi uporabnik. Vloga podeljuje privilegije za izvajanje nizov dejanj na določenih virih. Določena vloga se nanaša na podatkovno bazo, v kateri je definirana, in lahko omogoči dostop do ravni zbirke z natančnostjo. Vsaka od vgrajenih vlog v MongoDB določa dostop na ravni baze podatkov za vse nesistemske zbirke v podatkovni bazi vloge in na ravni zbirke za vse sistemske zbirke. MongoDB zagotavlja vgrajene uporabniške in administrativne vloge baze podatkov na vsaki bazi. MongoDB zagotavlja vse druge vgrajene vloge samo v skrbniški bazi podatkov. Ta razdelek opisuje privilegije za vsako vgrajeno vlogo. Privilegije za vgrajeno vlogo si lahko kadarkoli ogledate tako, da z ukazom rolesInfo nastavite showPrivileges in showBuiltinRolesfields na true. Uporabniške vloge v bazi podatkovVsaka baza podatkov vključuje naslednje vloge strank: preberiOmogoča branje podatkov o vseh ne-sistemskih zbirkah in na naslednjih sistemskih zbirkah: system.indexes, system.js in system.namespaces. Vloga omogoča dostop do branja z dodeljevanjem naslednjih dejanj: - collStats
- dbHash
- dbStats
- najdi
- killCursors
- listIndexes
- SeznamZbirke
readWriteOmogoča vse privilegije vloge branja ter možnost spreminjanja podatkov na vseh nesistemskih zbirkah in system.js zbirki. Vloga zagotavlja naslednje ukrepe glede teh zbirk: - collStats
- konvertToCapped
- createCollection
- dbHash
- dbStats
- dropCollection
- createIndex
- dropIndex
- prazna kapa
- najdi
- Vstavi
- killCursors
- listIndexes
- SeznamZbirke
- odstraniti
- renameCollectionSameDB
- Posodobitev
Vloge upravljanja podatkovnih bazVsaka baza podatkov vključuje naslednje vloge upravljanja podatkovnih baz: dbAdminZagotavlja naslednje akcije na zbirkah system.indexes, system.namespaces in system.profile baze podatkov: - collStats
- dbHash
- dbStats
- najdi
- killCursors
- listIndexes
- SeznamZbirke
- dropCollection in createCollection samo na system.profile
Spremenjeno v različici 2.6.4: dbAdmin je dodal createCollection za system.profilecollection. Prejšnje različice so imele dropCollection le v zbirki system.profile.
Zagotavlja naslednje ukrepe za vse nesistemske zbirke. Ta vloga ne vključuje popolnega dostopa do branja na nesistemskih zbirkah: - BypassDocumentValidation
- collMod
- collStats
- kompaktno
- konvertToCapped
- createCollection
- createIndex
- dbStats
- dropCollection
- dropDatabase
- dropIndex
- enableProfiler
- reIndex
- renameCollectionSameDB
- repairDatabase
- shranjevanje Podrobnosti
- Validate
dbOwnerLastnik baze podatkov lahko izvede katerokoli administrativno dejanje nad bazo. Ta vloga združuje privilegije, ki jih podeljujejo vloge readWrite, dbAdmin in userAdmin. userAdminOmogoča ustvarjanje in spreminjanje vlog in uporabnikov v trenutni bazi podatkov. Ta vloga posredno omogoča tudi dostop superuporabnika bodisi do baze podatkov ali, če je omejen na skrbniško bazo podatkov, do gruče. Vloga TheuserAdmin omogoča uporabnikom, da kateremukoli uporabniku podelijo katerokoli privilegijo, tudi sebi. Vloga userAdmin eksplicitno zagotavlja naslednja dejanja: - changeCustomData
- changePassword
- createRole
- createUser
- dropRole
- dropUser
- DodeljevanjeVloga
- recalleRole
- viewRole
- viewUser
Vloge upravljanja grozdovSkrbniška baza podatkov vključuje naslednje vloge za upravljanje celotnega sistema, ne le ene same baze podatkov. Te vloge vključujejo, vendar niso omejene na, administrativne funkcije replik in razdeljenih grozdov. clusterAdminNudi največji dostop do upravljanja grozdov. Ta vloga združuje privilegije, ki jih podeljujejo vloge theclusterManager, clusterMonitor in hostManager. Poleg tega vloga omogoča akcijo thedropDatabase. clusterManagerIzvaja upravljavske in nadzorne ukrepe na grozdi. Uporabnik s to vlogo lahko dostopa do konfiguracijske in lokalne baze podatkov, ki se uporabljata za razdeljevanje oziroma replikacijo. Nudi naslednje akcije za celoten grozd: - addShard
- applicationMessage
- Čiščenje Sirota
- flushRouterConfig
- seznamShards
- odstranitiShard
- replSetConfigure
- replSetGetConfig
- replSetGetStatus
- replSetStateChange
- resync
Omogoča naslednje akcije na vseh bazah podatkov v gruči: - enableSharding
- moveChunk
- splitChunk
- splitVector
V konfiguracijski bazi podatkov vsebuje naslednja dejanja v zbirki nastavitev: - Vstavi
- odstraniti
- Posodobitev
V konfiguracijski bazi podatkov zagotavlja naslednje akcije na vseh konfiguracijskih zbirkah ter na zbirkah thesystem.indexes, system.js in system.namespaces: - collStats
- dbHash
- dbStats
- najdi
- killCursors
V lokalni bazi podatkov na zbirki replset ponuja naslednja dejanja: - collStats
- dbHash
- dbStats
- najdi
- killCursors
clusterMonitorOmogoča dostop samo za branje do orodij za spremljanje, kot sta MongoDB Cloud Manager in operater za spremljanje operacij. Nudi naslednje akcije za celoten grozd: - connPoolStats
- cursorInfo
- getCmdLineOpts
- getLog
- getParameter
- getShardMap
- hostInfo
- inprog
- listPodatkovne baze
- seznamShards
- netstat
- replSetGetStatus
- replSetGetConfig
- serverStatus
- shardingState
- vrh
Omogoča naslednje akcije na vseh bazah podatkov v gruči: - collStats
- dbStats
- getShardVersion
- indexStats
Omogoča iskanje vseh zbirk system.profile v gruči. Zagotavlja naslednje akcije na konfiguracijskih zbirkah baze podatkov ter zbirkah system.indexes, system.js in system.namespaces: - collStats
- dbHash
- dbStats
- najdi
- killCursors
gostiteljOmogoča spremljanje in upravljanje strežnikov. Nudi naslednje akcije za celoten grozd: - applicationMessage
- closeAllDatabases
- connPoolSync
- cpuProfiler
- DiagLogging
- flushRouterConfig
- fsync
- invalidateUserCache
- Killop
- logRotate
- resync
- setParameter
- Zaustavitev
- Dotik
- Odkleni
Omogoča naslednje akcije na vseh bazah podatkov v gruči: - killCursors
- repairDatabase
Vloge rezervnih in obnovitvenih nalogAdministrativna baza podatkov vključuje naslednje vloge za varnostno kopiranje in obnovo podatkov: RezervaOmogoča minimalne privilegije za varnostno kopiranje podatkov. Ta vloga omogoča dovolj privilegijev za uporabo agenta za varnostno kopiranje MongoDB Cloud Manager, agenta za varnostno kopiranje Ops Manager ali za uporabo mongodump za varnostno kopiranje celotne instance mongoda. Omogoča vstavljanje in posodabljanje v zbirki mms.backup v administratorski bazi podatkov in v zbirki nastavitev v konfiguracijski bazi. Zagotavlja akcijo listDatabases za celoten grozd. Omogoča akcijo listCollections na vseh bazah podatkov. Omogoča akcijo listIndexes za vse zbirke. Omogoča akcijo bypassDocumentValidation za zbirke, ki imajo validacijo dokumentov. Nudi akcijo iskanja na naslednje: - vse nesistemske zbirke v gruči
- Vse naslednje sistemske zbirke v gruči: system.indexes, system.namespaces in system.js
- zbirki admin.system.users in admin.system.roles
- zbirka config.settings
- starinske zbirke system.users iz različic MongoDB pred različico 2.6
Spremenjeno v različici 3.2.1: Vloga varnostnega kopiranja zagotavlja dodatne privilegije za varnostno kopiranje zbirk thesystem.profile, ki obstajajo pri izvajanju profiliranja baze podatkov. Prej so uporabniki zahtevali dodatni dostop za branje do te zbirke. obnovitiOmogoča privilegije, potrebne za obnovo podatkov iz varnostnih kopij, ki ne vključujejo podatkov system.profilecollection. Ta vloga zadostuje pri obnovi podatkov z mongorestore brez možnosti --oplogReplay. Če varnostna kopija vključuje podatke o zbirki system.profile in ciljna baza podatkov ne vsebuje zbirke system.profile, mongorestore poskuša ustvariti zbirko, čeprav Program dejansko ne obnovi dokumentov System.Profile. Zato uporabnik potrebuje dodatne privilegije za izvajanje akcij createCollection in convertToCapped na zbirki system.profile za bazo podatkov. Vgrajeni vlogi dbAdmin in dbAdminAnyDatabase zagotavljajo dodatne privilegije. Če Mongorestore zaženeš z --oplogReplay, vloga restore ni zadostna za ponovno predvajanje oploga. Za ponovno predvajanje oploga ustvarite uporabniško določeno vlogo, ki ima anyAction na kateremkoli Resource in dodelite le uporabnikom, ki morajo zagnati mongorestore z --oplogReplay.
Zagotavlja naslednje ukrepe za vse nesistemske zbirke in system.js zbirke v gruči; na zbirkah admin.system.users in admin.system.roles v skrbniški bazi podatkov; in na starih zbirkah system.users iz različic MongoDB pred 2.6: - collMod
- createCollection
- createIndex
- dropCollection
- Vstavi
Omogoča akcijo listCollections na vseh bazah podatkov. Omogoča naslednje dodatne akcije na admin.system.users in legacy systems.userscollections: - najdi
- odstraniti
- Posodobitev
Omogoča iskanje vseh zbirk system.namespaces v gruči. Čeprav obnovitev vključuje možnost spreminjanja dokumentov v admin.system.userscollection z običajnimi operacijami sprememb, te podatke spreminjajte le z uporabniškim upravljanjem Metode.
Vloge v vseh bazah podatkovSkrbniška baza podatkov zagotavlja naslednje vloge, ki veljajo za vse baze podatkov v mongod instanci in so približno enakovredne njihovim ekvivalentom v eni bazi podatkov: readAnyDatabaseZagotavlja enake pravice samo za branje kot branje, le da velja za vse baze podatkov v gruči. Vloga prav tako zagotavlja delovanje listDatabases nad celotnim grozdom. readWriteAnyDatabaseNudi enake pravice za branje in pisanje kot readWrite, le da velja za vse baze podatkov v gruči. Vloga prav tako zagotavlja delovanje listDatabases nad celotnim grozdom. userAdminAnyDatabaseOmogoča enak dostop do uporabniških administrativnih operacij kot userAdmin, le da velja za vse baze podatkov v gruči. Vloga prav tako zagotavlja naslednje ukrepe za celotno grozo: - authSchemaUpgrade
- invalidateUserCache
- listPodatkovne baze
Vloga prav tako zagotavlja naslednje akcije na zbirkah admin.system.users in admin.system.roles v administratorski bazi podatkov ter na starejših system.userscollections iz različic MongoDB pred različico 2.6: - collStats
- dbHash
- dbStats
- najdi
- killCursors
- planCacheRead
Spremenjeno v različici 2.6.4: userAdminAnyDatabase je dodal naslednja dovoljenja na zbirki theadmin.system.users in admin.system.roles:
Vloga userAdminAnyDatabase ne omejuje dovoljenj, ki jih lahko uporabnik podeli. Zaradi tega si lahko uporabniki userAdminAnyDatabase podelijo privilegije, ki presegajo njihove trenutne privilegije, in si lahko celo podelijo vse privilegije, čeprav ta vloga tega ne omogoča izrecno avtorizirati privilegije onkraj uporabniške administracije. Ta vloga je v bistvu superuporabnik sistema MongoDB. dbAdminAnyDatabaseOmogoča enak dostop do upravljanja podatkovnih baz kot dbAdmin, le da velja za vse baze podatkov v gruči. Vloga prav tako zagotavlja delovanje listDatabases nad celotnim grozdom.
Vloge superuporabnikovVeč vlog omogoča posreden ali neposreden sistemski dostop superuporabnikov. Naslednje vloge omogočajo dodelitev kateregakoli privilegija kateremukoli uporabniku na katerikoli bazi podatkov, kar pomeni, da si lahko uporabniki z eno od teh vlog dodelijo katerikoli privilegij v katerikoli bazi podatkov: - vloga dbOwner, ko je omejena na administratorsko bazo podatkov
- userAdmin vloga, ko je omejena na administratorsko bazo podatkov
- userAdminAnyDatabase vloga
Naslednja vloga zagotavlja polne privilegije na vseh virih: korenOmogoča dostop do operacij in vseh virov vlog readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin in obnovitev skupaj. Spremenjeno v različici 3.0.7: Root ima akcijo validacije na sistemu. izterjave. Prej root ni vključeval nobenega dostopa do zbirk, ki se začnejo s sistemom. predpone razen system.indexes in system.namespaces. Osnovna vloga vključuje privilegije iz vloge obnovitve.
Notranja vloga__systemMongoDB to vlogo dodeli uporabniškim objektom, ki predstavljajo člane gruče, kot so replika člani množic in instance mongos. Vloga imetniku omogoča izvedbo kateregakoli dejanja proti kateremukoli objektu v podatkovni bazi. Te vloge ne dodeljujte uporabniškim objektom, ki predstavljajo aplikacije ali človeške administratorje, razen v izjemnih primerih. Če potrebujete dostop do vseh dejanj na vseh virih, na primer za izvajanje ukazov applyOps, te vloge ne dodeljujte. Namesto tega ustvarite uporabniško definirano vlogo, ki omogoča katerokoli akcijo na anyResource in zagotovite, da imajo dostop do teh operacij le uporabniki, ki potrebujejo dostop do teh operacij. Izvirnik: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|