|
MongoDB ger tillgång till data och kommandon genom rollbaserad auktorisation och tillhandahåller inbyggda roller som tillhandahåller de olika åtkomstnivåer som vanligtvis behövs i ett databassystem. Du kan dessutom skapa användardefinierade roller. En roll ger privilegier att utföra uppsättningar av handlingar på definierade resurser. En given roll gäller för databasen där den definieras och kan ge åtkomst ner till en samlingsnivå av granularitet. Var och en av MongoDBs inbyggda roller definierar åtkomst på databasnivå för alla icke-systemsamlingar i rollens databas och på samlingsnivå för alla systemsamlingar. MongoDB tillhandahåller de inbyggda funktionerna för databasanvändare och databasadministration på varje databas. MongoDB tillhandahåller alla andra inbyggda roller endast i admindatabasen. Detta avsnitt beskriver privilegierna för varje inbyggd roll. Du kan också se privilegierna för en inbyggd roll när som helst genom att ge ordern rolesInfo, med showPrivileges och showBuiltinRolesfields båda inställda på true. DatabasanvändarrollerVarje databas innehåller följande klientroller: LäsGer möjlighet att läsa data på alla icke-systemsamlingar och på följande systemsamlingar: system.indexes, system.js och system.namespaces-samlingar. Rollen ger läsåtkomst genom att bevilja följande åtgärder: - collStats
- dbHash
- dbStats
- hitta
- killCursors
- lista index
- lista Samlingar
läsaSkrivGer alla behörigheter för läsrollen plus möjlighet att ändra data på alla icke-systemsamlingar och system.js samling. Rollen ger följande åtgärder på dessa samlingar: - collStats
- konverteraToCcaped
- skapaSamling
- dbHash
- dbStats
- dropCollection
- createIndex
- dropIndex
- Tomt med hatten
- hitta
- Insert
- killCursors
- lista index
- lista Samlingar
- ta bort
- renameCollectionSameDB
- Uppdatering
DatabasadministrationsrollerVarje databas inkluderar följande databasadministrationsroller: dbAdminTillhandahåller följande åtgärder på databasens system.indexes, system.namespaces och system.profile-samlingar: - collStats
- dbHash
- dbStats
- hitta
- killCursors
- lista index
- lista Samlingar
- dropCollection och createCollection endast på system.profile
Ändrat i version 2.6.4: dbAdmin lade till createCollection för system.profilecollection. Tidigare versioner hade endast dropCollection på system.profile-samlingen.
Tillhandahåller följande åtgärder för alla icke-systemsamlingar. Denna roll inkluderar inte full läsåtkomst på icke-systemsamlingar: - bypassDocumentValidation
- collMod
- collStats
- Kompakt
- konverteraToCcaped
- skapaSamling
- createIndex
- dbStats
- dropCollection
- dropDatabase
- dropIndex
- enableProfiler
- reIndex
- renameCollectionSameDB
- repairDatabase
- lagringsDetaljer
- validera
dbOwnerDatabasägaren kan utföra vilken administrativ åtgärd som helst på databasen. Denna roll kombinerar de privilegier som ges av readWrite-, dbAdmin- och userAdmin-rollerna. userAdminGer möjlighet att skapa och ändra roller och användare i den aktuella databasen. Denna roll ger också indirekt superanvändaråtkomst till antingen databasen eller, om det är begränsat till admindatabasen, klustret. Rollen Användaradministratör tillåter användare att ge vilken användare som helst vilken behörighet som helst, inklusive sig själva. Rollen userAdmin tillhandahåller uttryckligen följande åtgärder: - changeCustomData
- changePassword
- createRole
- createUser
- dropRoll
- dropUser
- Bidragsroll
- revokeRoll
- visaRoll
- viewUser
KlusteradministrationsrollerAdministratörsdatabasen inkluderar följande roller för att administrera hela systemet snarare än bara en enda databas. Dessa roller inkluderar, men är inte begränsade till, administrativa funktioner för replikaset och sharded kluster. clusterAdminGer den bästa åtkomsten till klusterhantering. Denna roll kombinerar de privilegier som ges av theclusterManager, clusterMonitor och hostManager. Dessutom tillhandahåller rollen åtgärden dropDatabase. clusterManagerTillhandahåller hanterings- och övervakningsåtgärder på klustret. En användare med denna roll kan komma åt konfigurationen och lokala databaser, som används vid sharding respektive replikering. Tillhandahåller följande åtgärder på klustret som helhet: - addShard
- applicationMessage
- Föräldralös
- flushRouterConfig
- lista Skärvor
- ta bortSkärva
- replSetConfigure
- replSetGetConfig
- replSetGetStatus
- replSetStateChange
- Resync
Tillhandahåller följande åtgärder på alla databaser i klustret: - enableSharding
- flytta Chunk
- splitChunk
- splitVector
I konfigurationsdatabasen finns följande åtgärder i inställningssamlingen: I konfigurationsdatabasen finns följande åtgärder på alla konfigurationssamlingar och på thesystem.indexes, system.js och system.namespaces-samlingar: - collStats
- dbHash
- dbStats
- hitta
- killCursors
På den lokala databasen finns följande åtgärder på replset-samlingen: - collStats
- dbHash
- dbStats
- hitta
- killCursors
clusterMonitorGer skrivskyddad åtkomst till övervakningsverktyg, såsom MongoDB Cloud Manager och Ops Manager övervakningsagent. Tillhandahåller följande åtgärder på klustret som helhet: - connPoolStats
- cursorInfo
- getCmdLineOpts
- getLog
- getParameter
- getShardMap
- hostInfo
- inprog
- lista databaser
- lista Skärvor
- Netstat
- replSetGetStatus
- replSetGetConfig
- serverStatus
- ShardingState
- topp
Tillhandahåller följande åtgärder på alla databaser i klustret: - collStats
- dbStats
- getShardVersion
- indexStatistik
Tillhandahåller sökfunktionen för alla system.profile-samlingar i klustret. Tillhandahåller följande åtgärder på konfigurationsdatabasens konfigurationssamlingar ochsystem.indexes, system.js och system.namespaces: - collStats
- dbHash
- dbStats
- hitta
- killCursors
hostManagerGer möjlighet att övervaka och hantera servrar. Tillhandahåller följande åtgärder på klustret som helhet: - applicationMessage
- closeAllDatabases
- connPoolSync
- cpuProfiler
- diagLogging
- flushRouterConfig
- fsync
- invalidateUserCache
- killop
- logRotate
- Resync
- setParameter
- Nedstängning
- Beröring
- Lås upp
Tillhandahåller följande åtgärder på alla databaser i klustret: - killCursors
- repairDatabase
Reserv- och restaureringsrollerAdministratörsdatabasen inkluderar följande roller för säkerhetskopiering och återställning av data: BackupGer minimala behörigheter som behövs för säkerhetskopiering av data. Denna roll ger tillräckliga rättigheter för att använda MongoDB Cloud Manager backup agent, Ops Manager backup agent eller att använda mongodump för att säkerhetskopiera en hel mongod-instans. Tillhandahåller insättnings- och uppdateringsåtgärder i mms.backup-samlingen i administrationsdatabasen och i inställningssamlingen i konfigurationsdatabasen. Tillhandahåller listDatabases-åtgärden på klustret som helhet. Tillhandahåller listCollections-åtgärden på alla databaser. Tillhandahåller listIndexes-åtgärden för alla samlingar. Tillhandahåller åtgärden bypassDocumentValidation för samlingar som har dokumentvalidering. Tillhandahåller sökfunktionen på följande: - Alla icke-system-samlingar i klustret
- Alla följande systemsamlingar i klustret: System.indexes, System.namespaces och system.js
- samlingarna admin.system.users och admin.system.roles
- Config.settings-samlingen
- legacy system.users-samlingar från versioner av MongoDB före 2.6
Ändrat i version 3.2.1: Säkerhetskopieringsrollen ger ytterligare behörigheter för att säkerhetskopiera system.profile-samlingarna som finns vid körning med databasprofilering. Tidigare krävde användare ytterligare läsbehörighet på denna samling. ÅterställGer behörigheter som behövs för att återställa data från säkerhetskopior som inte inkluderar system.profilecollection-data. Denna roll är tillräcklig när man återställer data med mongorestore utan --oplogReplay-alternativet. Om säkerhetskopian innehåller system.profile-samlingsdata och måldatabasen inte innehåller system.profile-samlingen, försöker mongorestore skapa samlingen även om Programmet återställer faktiskt inte system.profile-dokument. Därför kräver användaren ytterligare privilegier för att utföra createCollection- och convertToCcaped-åtgärder på system.profile-samlingen för en databas. De inbyggda rollerna dbAdmin och dbAdminAnyDatabase ger de extra rättigheterna. Om man kör mongorestore med --oplogReplay är återställningsrollen otillräcklig för att spela om oplogen. För att spela om oplogen, skapa en användardefinierad roll som har anyAction på anyResource och ge endast till användare som måste köra mongorestore med --oplogReplay.
Tillhandahåller följande åtgärder för alla icke-systemsamlingar och system.js samlingar i klustret; på samlingarna admin.system.users och admin.system.roles i admindatabasen; och på äldre system.users-samlingar från versioner av MongoDB före 2.6: - collMod
- skapaSamling
- createIndex
- dropCollection
- Insert
Tillhandahåller listCollections-åtgärden på alla databaser. Tillhandahåller följande ytterligare åtgärder på admin.system.users och äldre system.userscollections: Tillhandahåller sökfunktionen på alla system.namespaces-samlingar i klustret. Även om restore inkluderar möjligheten att ändra dokumenten i admin.system.userscollection med normala modifieringsoperationer, modifiera endast dessa data via användarhanteringen metoder.
Roller med alla databaserAdministratörsdatabasen tillhandahåller följande roller som gäller för alla databaser i en mongod-instans och är ungefär ekvivalenta med deras motsvarigheter i en enda databas: readAnyDatabaseGer samma skrivskyddade behörigheter som läsbehörighet, förutom att det gäller alla databaser i klustret. Rollen tillhandahåller också listDatabases-åtgärden på klustret som helhet. readWriteAnyDatabaseGer samma läs- och skrivbehörigheter som readWrite, förutom att det gäller alla databaser i klustret. Rollen tillhandahåller också listDatabases-åtgärden på klustret som helhet. userAdminAnyDatabaseGer samma åtkomst till användaradministrationsoperationer som userAdmin, förutom att det gäller alla databaser i klustret. Rollen ger också följande åtgärder för klustret som helhet: - authSchemaUpgrade
- invalidateUserCache
- lista databaser
Rollen tillhandahåller också följande åtgärder på samlingarna admin.system.users och admin.system.roles i admindatabasen, samt på äldre system.userscollections från versioner av MongoDB före 2.6: - collStats
- dbHash
- dbStats
- hitta
- killCursors
- planCacheRead
Ändrat i version 2.6.4: userAdminAnyDatabase lade till följande behörigheter på theadmin.system.users och admin.system.roles-samlingarna:
Rollen userAdminAnyDatabase begränsar inte vilka behörigheter en användare kan ge. Som ett resultat kan användareAdminAnyDatabase-användare ge sig själva privilegier utöver sina nuvarande privilegier och till och med ge sig själva alla rättigheter, även om rollen inte gör det Auktorisera uttryckligen privilegier utöver användaradministration. Denna roll är i praktiken en MongoDB-systemsuperanvändare. dbAdminAnyDatabaseGer samma åtkomst till databasadministrationsoperationer som dbAdmin, förutom att det gäller alla databaser i klustret. Rollen tillhandahåller också listDatabases-åtgärden på klustret som helhet.
SuperanvändarrollerFlera roller ger antingen indirekt eller direkt systemomfattande superanvändaråtkomst. Följande roller ger möjlighet att tilldela vilken användare som helst vilken behörighet som helst på vilken databas som helst, vilket innebär att användare med en av dessa roller kan tilldela sig själva vilken behörighet som helst på vilken databas som helst: - dbOwner-rollen, när den är begränsad till administratörsdatabasen
- userAdmin-rollen, när den är begränsad till admindatabasen
- userAdminAnyDatabase-roll
Följande roll ger fulla rättigheter på alla resurser: rotGer tillgång till operationerna och alla resurser för readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdminAdmin, restore combined. Ändrat i version 3.0.7: Roten har valideringsåtgärd på systemet. Samlingar. Tidigare inkluderade root ingen åtkomst till samlingar som börjar med systemet. prefix annat än system.index och system.namespaces. Rotrollen inkluderar privilegier från återställningsrollen.
Intern roll__systemMongoDB tilldelar denna roll till användarobjekt som representerar klustermedlemmar, såsom replikauppsättningsmedlemmar och mongos-instanser. Rollen ger innehavaren rätt att vidta åtgärder mot vilket objekt som helst i databasen. Tilldela inte denna roll till användarobjekt som representerar applikationer eller mänskliga administratörer, förutom i undantagsfall. Om du behöver tillgång till alla handlingar på alla resurser, till exempel för att köra applyOps-kommandon, tilldela inte denna roll. Skapa istället en användardefinierad roll som ger anyAction på anyResource och se till att endast de användare som behöver tillgång till dessa operationer har denna åtkomst. Original: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|