|
MongoDB giver adgang til data og kommandoer gennem rollebaseret autorisation og tilbyder indbyggede roller, der giver de forskellige adgangsniveauer, som almindeligvis er nødvendige i et databasesystem. Du kan desuden oprette brugerdefinerede roller. En rolle giver privilegier til at udføre sæt af handlinger på definerede ressourcer. En given rolle gælder for den database, den er defineret på, og kan give adgang ned til et samlingsniveau af granularitet. Hver af MongoDBs indbyggede roller definerer adgang på databaseniveau for alle ikke-systemsamlinger i rollens database og på samlingsniveau for alle systemsamlinger. MongoDB leverer de indbyggede databasebruger- og databaseadministrationsroller på hver database. MongoDB leverer alle andre indbyggede roller kun på admin-databasen. Dette afsnit beskriver privilegierne for hver indbygget rolle. Du kan også se privilegierne for en indbygget rolle når som helst ved at udstede rolesInfo-kommandoen med showPrivileges og showBuiltinRolesfields begge sat til true. DatabasebrugerrollerHver database indeholder følgende klientroller: LæsGiver mulighed for at læse data på alle ikke-systemsamlinger og på følgende systemsamlinger: system.indexes, system.js og system.namespaces-samlinger. Rollen giver læseadgang ved at tildele følgende handlinger: - collStats
- dbHash
- dbStats
- find
- killCursors
- listeIndekser
- listeSamlinger
readWriteGiver alle læserollen privilegier samt mulighed for at ændre data på alle ikke-system-samlinger og system.js-samlingen. Rollen giver følgende handlinger på disse samlinger: - collStats
- convertToCapped
- createCollection
- dbHash
- dbStats
- dropCollection
- createIndex
- dropIndex
- Emptycapped
- find
- Indsæt
- killCursors
- listeIndekser
- listeSamlinger
- Fjern
- renameCollectionSameDB
- Opdatering
DatabaseadministrationsrollerHver database indeholder følgende databaseadministrationsroller: dbAdminTilbyder følgende handlinger på databasens system.indexes, system.namespaces og system.profile-samlinger: - collStats
- dbHash
- dbStats
- find
- killCursors
- listeIndekser
- listeSamlinger
- dropCollection og createCollection kun på system.profile
Ændret i version 2.6.4: dbAdmin tilføjede createCollection til system.profilecollection. Tidligere versioner havde kun dropCollection på system.profile-samlingen.
Giver følgende handlinger på alle ikke-system-samlinger. Denne rolle omfatter ikke fuld læseadgang på ikke-systemsamlinger: - bypassDocumentValidation
- collMod
- collStats
- Kompakt
- convertToCapped
- createCollection
- createIndex
- dbStats
- dropCollection
- dropDatabase
- dropIndex
- enableProfiler
- reIndex
- renameCollectionSameDB
- repairDatabase
- storageDetaljer
- valider
dbOwnerDatabase-ejeren kan udføre enhver administrativ handling på databasen. Denne rolle kombinerer de privilegier, der gives af readWrite, dbAdmin og userAdmin. userAdminGiver mulighed for at oprette og ændre roller og brugere på den aktuelle database. Denne rolle giver også indirekte superbrugeradgang til enten databasen eller, hvis det er begrænset til admin-databasen, klyngen. Rollen TheuserAdmin giver brugerne mulighed for at give enhver bruger enhver privilegium, inklusive sig selv. UserAdmin-rollen giver eksplicit følgende handlinger: - changeCustomData
- changePassword
- createRole
- createUser
- dropRole
- dropUser
- Legatrolle
- tilbagekaldeRolle.
- seRolle.
- viewUser
KlyngeadministrationsrollerAdmin-databasen omfatter følgende roller til administration af hele systemet i stedet for blot en enkelt database. Disse roller omfatter, men er ikke begrænset til, replica set og sharded cluster administrative funktioner. clusterAdminGiver den bedste adgang til klyngestyring. Denne rolle kombinerer de privilegier, der gives af theclusterManager, clusterMonitor og hostManager. Derudover leverer rollen actionen thedropDatabase. clusterManagerLeverer administrations- og overvågningshandlinger på klyngen. En bruger med denne rolle kan få adgang til konfigurationen og de lokale databaser, som bruges i henholdsvis sharding og replikation. Giver følgende handlinger på klyngen som helhed: - addShard
- applicationMessage
- oprydning Forældreløs
- flushRouterConfig
- listeShards
- fjern Shard
- replSetConfigure
- replSetGetConfig
- replSetGetStatus
- replSetStateChange
- Resync
Giver følgende handlinger på alle databaser i klyngen: - enableSharding
- moveChunk
- splitChunk
- splitVector
På konfigurationsdatabasen gives følgende handlinger i indstillingssamlingen: På konfigurationsdatabasen gives følgende handlinger på alle konfigurationssamlinger og på thesystem.indexes, system.js og system.namespaces-samlingerne: - collStats
- dbHash
- dbStats
- find
- killCursors
På den lokale database gives følgende handlinger på replset-samlingen: - collStats
- dbHash
- dbStats
- find
- killCursors
clusterMonitorGiver skrivebeskyttet adgang til overvågningsværktøjer, såsom MongoDB Cloud Manager og Ops Manager overvågningsagenten. Giver følgende handlinger på klyngen som helhed: - connPoolStats
- cursorInfo
- getCmdLineOpts
- getLog
- getParameter
- getShardMap
- hostInfo
- inprog
- listeDatabaser
- listeShards
- Netstat
- replSetGetStatus
- replSetGetConfig
- serverStatus
- shardingState
- top
Giver følgende handlinger på alle databaser i klyngen: - collStats
- dbStats
- getShardVersion
- indeksStatistik
Giver find-handlingen på alle system.profile-samlinger i klyngen. Giver følgende handlinger på konfigurationsdatabasens konfigurationssamlinger og system.indexes, system.js og system.namespaces-samlinger: - collStats
- dbHash
- dbStats
- find
- killCursors
hostManagerGiver mulighed for at overvåge og administrere servere. Giver følgende handlinger på klyngen som helhed: - applicationMessage
- closeAllDatabases
- connPoolSync
- cpuProfiler
- diagLogging
- flushRouterConfig
- fsync
- invalidateUserCache
- killop
- logRotate
- Resync
- setParameter
- Nedlukning
- Berøring
- Lås op
Giver følgende handlinger på alle databaser i klyngen: - killCursors
- repairDatabase
Backup- og restaureringsrollerAdministrationsdatabasen omfatter følgende roller til backup og gendannelse af data: BackupGiver minimale privilegier, der er nødvendige for at tage backup af data. Denne rolle giver tilstrækkelige rettigheder til at bruge MongoDB Cloud Manager backup agent, Ops Manager backup agent eller bruge mongodump til at tage backup af en hel mongod-instans. Leverer indsættelses- og opdateringshandlingerne i mms.backup-samlingen i admin-databasen og i indstillingssamlingen i konfigurationsdatabasen. Giver listDatabases-handlingen på klyngen som helhed. Giver listCollections-handlingen på alle databaser. Giver listIndexes-handlingen for alle samlinger. Giver bypassDocumentValidation-handlingen for samlinger, der har dokumentvalidering. Giver find-handlingen på følgende: - alle ikke-system-samlinger i klyngen
- Alle følgende systemsamlinger i klyngen: System.Indexes, System.namespaces og system.js
- Samlingerne admin.system.users og admin.system.roles
- Config.settings-samlingen
- legacy system.users-samlinger fra versioner af MongoDB før 2.6
Ændret i version 3.2.1: Backup-rollen giver yderligere rettigheder til at tage backup af system.profile-samlingerne, der eksisterer, når man kører med databaseprofilering. Tidligere krævede brugerne en ekstra læseadgang på denne samling. GenopretGiver de nødvendige rettigheder til at gendanne data fra backups, der ikke inkluderer system.profilecollection-data. Denne rolle er tilstrækkelig, når man gendanner data med mongorestore uden --oplogReplay-muligheden. Hvis backupdataene inkluderer system.profile-indsamlingsdata, og mål-databasen ikke indeholder system.profile-samlingen, forsøger mongorestore at oprette samlingen, selvom Programmet gendanner faktisk ikke system.profile-dokumenter. Derfor kræver brugeren yderligere rettigheder for at udføre createCollection og convertToCapped-handlinger på system.profile-samlingen for en database. De indbyggede roller dbAdmin og dbAdminAnyDatabase giver de ekstra privilegier. Hvis man kører mongorestore med --oplogReplay, er gendannelsesrollen utilstrækkelig til at genafspille oplogen. For at genafspille oplogen skal du oprette en brugerdefineret rolle, der har anyAction på anyResource, og kun give til brugere, der skal køre mongorestore med --oplogReplay.
Giver følgende handlinger på alle ikke-system-samlinger og system.js-samlinger i klyngen; på samlingerne admin.system.users og admin.system.roles i admin-databasen; og på ældre system.users-samlinger fra versioner af MongoDB før 2.6: - collMod
- createCollection
- createIndex
- dropCollection
- Indsæt
Giver listCollections-handlingen på alle databaser. Giver følgende yderligere handlinger på admin.system.users og legacy system.userscollections: Giver find-handlingen på alle system.namespaces-samlinger i klyngen. Selvom restore inkluderer muligheden for at ændre dokumenterne i admin.system.userscollection ved hjælp af normale ændringsoperationer, må kun disse data ændres via brugerstyringen metoder.
Roller med alle databaserAdmin-databasen tilbyder følgende roller, som gælder for alle databaser i en mongod-instans og er omtrent ækvivalente med deres enkelt-database-ækvivalenter: readAnyDatabaseGiver de samme skrivebeskyttede rettigheder som læsetilladelser, bortset fra at det gælder for alle databaser i klyngen. Rollen giver også listDatabases-handlingen på klyngen som helhed. readWriteAnyDatabaseGiver de samme læse- og skriverettigheder som readWrite, bortset fra at det gælder for alle databaser i klyngen. Rollen giver også listDatabases-handlingen på klyngen som helhed. userAdminAnyDatabaseGiver samme adgang til brugeradministrationsoperationer som userAdmin, bortset fra at det gælder for alle databaser i klyngen. Rollen giver også følgende handlinger på klyngen som helhed: - authSchemaUpgrade
- invalidateUserCache
- listeDatabaser
Rollen giver også følgende handlinger på samlingerne admin.system.users og admin.system.roles på admin-databasen samt på legacy system.userscollections fra versioner af MongoDB før 2.6: - collStats
- dbHash
- dbStats
- find
- killCursors
- planCacheRead
Ændret i version 2.6.4: userAdminAnyDatabase tilføjede følgende tilladelser til theadmin.system.users og admin.system.roles-samlingerne:
Rollen userAdminAnyDatabase begrænser ikke de rettigheder, en bruger kan give. Som følge heraf kan userAdminAnyDatabase-brugere give sig selv privilegier, der overstiger deres nuværende privilegier, og endda give sig selv alle rettigheder, selvom rollen ikke gør det Autoriser eksplicit privilegier ud over brugeradministration. Denne rolle er reelt en MongoDB-system-superbruger. dbAdminAnyDatabaseGiver samme adgang til databaseadministrationsoperationer som dbAdmin, bortset fra at det gælder for alle databaser i klyngen. Rollen giver også listDatabases-handlingen på klyngen som helhed.
SuperbrugerrollerFlere roller giver enten indirekte eller direkte systemomfattende superbrugeradgang. Følgende roller giver mulighed for at tildele enhver bruger enhver privilegium på enhver database, hvilket betyder, at brugere med en af disse roller kan tildele sig selv enhver privilegium på enhver database: - dbOwner-rolle, når den er scoped til admin-databasen
- userAdmin-rollen, når den er scoped til admin-databasen
- userAdminAnyDatabase-rolle
Følgende rolle giver fulde privilegier på alle ressourcer: rodGiver adgang til driften og alle ressourcer for readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin, restore combined. Ændret i version 3.0.7: Roden har valideringsaktion på systemet. Inkassoer. Tidligere inkluderede root ikke adgang til samlinger, der begyndte med systemet. præfiks andet end system.indexes og system.namespaces. Root-rollen inkluderer privilegier fra genoprettelsesrollen.
Intern rolle__systemMongoDB tildeler denne rolle til brugerobjekter, der repræsenterer klyngemedlemmer, såsom replikasætmedlemmer og Mongos-instanser. Rollen giver indehaveren ret til at foretage enhver handling mod ethvert objekt i databasen. Tildel ikke denne rolle til brugerobjekter, der repræsenterer applikationer eller menneskelige administratorer, undtagen i særlige tilfælde. Hvis du har brug for adgang til alle handlinger på alle ressourcer, for eksempel for at køre applyOps-kommandoer, skal du ikke tildele denne rolle. Opret i stedet en brugerdefineret rolle, der giver anyAction på anyResource, og sørg for, at kun de brugere, der har brug for adgang til disse operationer, har denne adgang. Oprindeligt: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|