|
MongoDB poskytuje přístup k datům a příkazům prostřednictvím autorizace založené na rolích a poskytuje vestavěné role, které poskytují různé úrovně přístupu běžně potřebné v databázovém systému. Můžete také vytvářet role definované uživatelem. Role uděluje privilegia k provádění sad akcí na definovaných zdrojích. Určitá role se vztahuje na databázi, ve které je definována, a může udělit přístup až na úroveň sběru s granularitou. Každá z vestavěných rolí MongoDB definuje přístup na úrovni databáze pro všechny nesystémové kolekce v databázi role a na úrovni kolekce pro všechny systémové kolekce. MongoDB poskytuje vestavěné role uživatele databáze a správce databáze v každé databázi. MongoDB poskytuje všechny ostatní vestavěné role pouze v administrátorské databázi. Tato sekce popisuje oprávnění pro každou vestavěnou roli. Oprávnění pro vestavěnou roli můžete kdykoli zobrazit zadáním příkazu rolesInfo s nastavením showPrivileges a showBuiltinRolesfields na true. Uživatelské role databázíKaždá databáze zahrnuje následující role klientů: ČístUmožňuje číst data ze všech nesystémových kolekcí a z následujících systémových kolekcí: system.indexes, system.js a system.namespaces. Role poskytuje přístup ke čtení tím, že uděluje následující akce: - collStats
- dbHash
- dbStats
- Najdi
- killCursors
- listIndexes
- seznamSbírky
readWritePoskytuje všechna oprávnění role čtení plus možnost upravovat data ve všech nesystémových kolekcích a system.js kolekci. Role poskytuje následující činnosti na těchto sbírkách: - collStats
- konvertitToCaped
- createCollection
- dbHash
- dbStats
- dropCollection
- createIndex
- dropIndex
- prázdný čepiček
- Najdi
- Vložit
- killCursors
- listIndexes
- seznamSbírky
- odstranit
- renameCollectionSameDB
- Aktualizace
Role správy databázíKaždá databáze zahrnuje následující role správy databáze: dbAdminPoskytuje následující akce na kolekcích system.indexes, system.namespaces a system.profile databáze: - collStats
- dbHash
- dbStats
- Najdi
- killCursors
- listIndexes
- seznamSbírky
- dropCollection a createCollection pouze na system.profile
Změněno ve verzi 2.6.4: dbAdmin přidal createCollection pro system.profilecollection. Předchozí verze měly pouze dropCollection v kolekci system.profile.
Poskytuje následující akce na všech nesystémových kolekcích. Tato role nezahrnuje plný read-access u nesystémových kolekcí: - bypassDocumentValidation
- collMod
- collStats
- kompaktní
- konvertitToCaped
- createCollection
- createIndex
- dbStats
- dropCollection
- dropDatabase
- dropIndex
- enableProfiler
- reIndex
- renameCollectionSameDB
- repairDatabase
- ÚložištěPodrobnosti
- validovat
dbOwnerVlastník databáze může provádět jakoukoli administrativní akci na databázi. Tato role kombinuje oprávnění udělená rolemi readWrite, dbAdmin a userAdmin. userAdminUmožňuje vytvářet a upravovat role a uživatele v aktuální databázi. Tato role také nepřímo poskytuje přístup superuživateli buď k databázi, nebo, pokud je zaměřena na administrátorskou databázi, ke clusteru. Role TheuserAdmin umožňuje uživatelům udělit jakékoli oprávnění, včetně sebe samotného. Role userAdmin explicitně poskytuje následující akce: - changeCustomData
- changePassword
- createRole
- createUser
- dropRole
- dropUser
- GrantRole
- odvolatRole
- viewRole
- viewUser
Role správy clusterůAdministrativní databáze zahrnuje následující role pro správu celého systému, nikoli pouze jedné databáze. Tyto role zahrnují, ale nejsou omezeny na administrátorské funkce replikovaných sad a shardovaných clusterů. clusterAdminPoskytuje nejlepší přístup ke správě clusterů. Tato role kombinuje oprávnění udělená rolemi theclusterManager, clusterMonitor a hostManager. Navíc role poskytuje akci thedropDatabase. clusterManagerPoskytuje řízení a monitorovací akce na clusteru. Uživatel s touto rolí může přistupovat ke konfiguračním a lokálním databázím, které se používají při shardingu a replikaci. Poskytuje následující akce na celek clusteru: - addShard
- applicationMessage
- úklid osiřelý
- flushRouterConfig
- seznamShards
- odstranitShard
- replSetConfigure
- replSetGetConfig
- replSetGetStatus
- replSetStateChange
- resync
Poskytuje následující akce ve všech databázích v clusteru: - enableSharding
- moveChunk
- splitChunk
- splitVector
V konfigurační databázi poskytuje následující akce v kolekci nastavení: - Vložit
- odstranit
- Aktualizace
V konfigurační databázi poskytuje následující akce na všech konfiguračních kolekcích a na kolekcích thesystem.indexes, system.js a system.namespaces: - collStats
- dbHash
- dbStats
- Najdi
- killCursors
V lokální databázi poskytuje následující akce na kolekci replsetů: - collStats
- dbHash
- dbStats
- Najdi
- killCursors
clusterMonitorPoskytuje pouze pro čtení přístup k monitorovacím nástrojům, jako jsou MongoDB Cloud Manager a monitorovací agent Ops Manager. Poskytuje následující akce na celek clusteru: - connPoolStats
- cursorInfo
- getCmdLineOpts
- getLog
- getParameter
- getShardMap
- hostInfo
- inprog
- seznamDatabáze
- seznamShards
- netstat
- replSetGetStatus
- replSetGetConfig
- serverStatus
- shardingState
- Top
Poskytuje následující akce ve všech databázích v clusteru: - collStats
- dbStats
- getShardVersion
- indexStats
Poskytuje akci najít ve všech kolekcích system.profile v clusteru. Poskytuje následující akce na konfiguračních kolekcích a kolekcích system.indexes, system.js a system.namespaces v konfigurační databázi: - collStats
- dbHash
- dbStats
- Najdi
- killCursors
hostManagerUmožňuje monitorovat a spravovat servery. Poskytuje následující akce na celek clusteru: - applicationMessage
- closeAllDatabases
- connPoolSync
- cpuProfiler
- DiagLogging
- flushRouterConfig
- fsync
- invalidateUserCache
- killop
- logRotate
- resync
- setParameter
- Vypnutí
- Dotyk
- Odemknout
Poskytuje následující akce ve všech databázích v clusteru: - killCursors
- repairDatabase
Role zálohy a obnovyAdministrátorská databáze zahrnuje následující role pro zálohování a obnovu dat: ZálohaPoskytuje minimální oprávnění potřebná pro zálohování dat. Tato role poskytuje dostatečná oprávnění pro použití zálohovacího agenta MongoDB Cloud Manager, agenta pro zálohování Ops Manager nebo pro použití mongodump k zálohování celé instance mongod. Poskytuje akce vložení a aktualizace v kolekci mms.backup v administrátorské databázi a v kolekci nastavení v konfigurační databázi. Poskytuje akci listDatabases na celý cluster. Poskytuje akci listCollections ve všech databázích. Poskytuje akci listIndexes pro všechny kolekce. Poskytuje akci bypassDocumentValidation pro kolekce, které mají validaci dokumentů. Poskytuje akci vyhledávání na následující: - všechny nesystémové kolekce v clusteru
- všechny následující systémové kolekce v clusteru: system.indexes, system.namespaces a system.js
- kolekce admin.system.users a admin.system.roles
- kolekce config.settings
- staré kolekce system.users z verzí MongoDB před verzí 2.6
Změněno ve verzi 3.2.1: Role zálohy poskytuje další oprávnění pro zálohování kolekcí thesystem.profile, které existují při provozu s databázovým profilováním. Dříve uživatelé potřebovali dodatečný přístup k této sbírce. obnovaPoskytuje oprávnění potřebná k obnově dat ze záloh, které neobsahují data system.profilecollection. Tato role je dostatečná při obnově dat pomocí mongorestore bez možnosti --oplogReplay. Pokud záložní data obsahují data sbírky system.profile a cílová databáze neobsahuje kolekci system.profile, mongorestore se pokusí kolekci vytvořit, i když Program ve skutečnosti neobnovuje dokumenty System.profile. Uživatel proto potřebuje další oprávnění pro provádění akcí createCollection a convertToCapped na kolekci system.profile pro databázi. Vestavěné role dbAdmin a dbAdminAnyDatabase poskytují další oprávnění. Pokud spustíte mongorestore s --oplogReplay, role restore nestačí k opětovnému přehrání oplogu. Pro opětovné přehraní oplogu vytvořte uživatelem definovanou roli, která má anyAction na anyResource a udělte pouze uživatelům, kteří musí spustit mongorestore s --oplogReplay.
Poskytuje následující akce na všech nesystémových kolekcích a system.js kolekcích v clusteru; na kolekcích admin.system.users a admin.system.roles v administrátorské databázi; a na starších kolekcích system.users z verzí MongoDB před verzí 2.6: - collMod
- createCollection
- createIndex
- dropCollection
- Vložit
Poskytuje akci listCollections ve všech databázích. Poskytuje následující další akce na admin.system.users a legacy system.userscollections: - Najdi
- odstranit
- Aktualizace
Poskytuje akci hledání ve všech kolekcích system.namespaces v clusteru. Obnova však zahrnuje možnost upravovat dokumenty v admin.system.userscollection pomocí běžných úprav, ale tato data upravovat pouze pomocí uživatelské správy Metody.
Role ve všech databázíchAdministrativní databáze poskytuje následující role, které se vztahují na všechny databáze v instanci mongodu a jsou přibližně ekvivalentní jejich ekvivalentům v jedné databázi: readAnyDatabasePoskytuje stejná oprávnění pouze pro čtení jako čtení, ale platí pro všechny databáze v clusteru. Tato role také poskytuje akci listDatabases na celý cluster. readWriteAnyDatabasePoskytuje stejná oprávnění pro čtení a zápis jako readWrite, ale platí pro všechny databáze v clusteru. Tato role také poskytuje akci listDatabases na celý cluster. userAdminAnyDatabasePoskytuje stejný přístup k provozu správy uživatelů jako userAdmin, ale vztahuje se na všechny databáze v clusteru. Role také poskytuje následující akce na celý cluster: - authSchemaUpgrade
- invalidateUserCache
- seznamDatabáze
Role také poskytuje následující akce na kolekcích admin.system.users a admin.system.roles v administrátorské databázi a na starších system.userscollections z verzí MongoDB před verzí 2.6: - collStats
- dbHash
- dbStats
- Najdi
- killCursors
- planCacheRead
Změněno ve verzi 2.6.4: userAdminAnyDatabase přidal následující oprávnění ke sbírkám theadmin.system.users a admin.system.roles:
Role userAdminAnyDatabase neomezuje oprávnění, která může uživatel udělit. Výsledkem je, že uživatelé userAdminAnyDatabase si mohou udělovat privilegia přesahující jejich současná oprávnění a dokonce si mohou udělit všechna oprávnění, i když tato role neumožňuje výslovně autorizovat oprávnění nad rámec správy uživatelem. Tato role je v podstatě superuživatelem systému MongoDB. dbAdminAnyDatabasePoskytuje stejný přístup k provozu správy databází jako dbAdmin, ale vztahuje se na všechny databáze v clusteru. Tato role také poskytuje akci listDatabases na celý cluster.
Role superuživateleNěkolik rolí poskytuje buď nepřímý, nebo přímý systémový přístup superuživatele. Následující role umožňují přiřadit jakémukoliv uživateli jakékoli oprávnění v jakékoli databázi, což znamená, že uživatelé s jednou z těchto rolí si mohou přiřadit jakékoli oprávnění v jakékoli databázi: - role dbOwner, když je zaměřena na administrátorskou databázi
- userAdmin role, když je zaměřena na administrátorskou databázi
- role userAdminAnyDatabase
Následující role poskytuje plná práva na všechny zdroje: kořenPoskytuje přístup k operacím a všem zdrojům rolí readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin a obnovení dohromady. Změněno ve verzi 3.0.7: Kořen má validační akci na systému. inkasa. Dříve root nezahrnoval žádný přístup ke kolekcím začínajícím systémem. prefixy jiné než system.indexes a system.namespaces. Základní role zahrnuje oprávnění z role obnovení.
Vnitřní role__systemMongoDB přiřazuje tuto roli uživatelským objektům, které reprezentují členy clusteru, jako jsou repliky a instance mongos. Tato role opravňuje držitele k jakékoli akci proti jakémukoli objektu v databázi. Tuto roli nepřiřazujte uživatelským objektům reprezentujícím aplikace nebo lidské administrátory, kromě výjimečných případů. Pokud potřebujete přístup ke všem akcím na všech zdrojích, například pro spuštění příkazů applyOps, tuto roli nepřiřazujte. Místo toho vytvořte uživatelsky definovanou roli, která uděluje AnyAction na anyResource a zajistěte, že tento přístup mají pouze uživatelé, kteří potřebují přístup k těmto operacím. Originál: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|