|
MongoDB gewährt den Zugriff auf Daten und Befehle durch rollenbasierte Autorisierung und stellt integrierte Rollen bereit, die die verschiedenen Zugriffsebenen bereitstellen, die in einem Datenbanksystem häufig benötigt werden. Außerdem können Sie benutzerdefinierte Rollen erstellen. Eine Rolle gewährt Privilegien, um Aktionen auf definierten Ressourcen auszuführen. Eine bestimmte Rolle gilt für die Datenbank, auf der sie definiert ist, und kann Zugriff bis auf eine Sammlungsgranularitätsebene gewähren. Jede der integrierten Rollen von MongoDB definiert den Zugriff auf Datenbankebene für alle nicht-systembezogenen Sammlungen in der Datenbank der Rolle und auf Sammlungsebene für alle Systemsammlungen. MongoDB stellt die integrierten Rollen für Datenbankbenutzer und Datenbankverwaltung auf jeder Datenbank bereit. MongoDB stellt alle anderen integrierten Rollen nur in der Admin-Datenbank bereit. Dieser Abschnitt beschreibt die Privilegien für jede eingebaute Rolle. Sie können auch jederzeit die Rechte einer eingebauten Rolle einsehen, indem Sie den Befehl rolesInfo, wobei die Felder showPrivileges und showBuiltinRolesfields beide auf true gesetzt sind. Datenbank-BenutzerrollenJede Datenbank umfasst die folgenden Client-Rollen: LesenBietet die Möglichkeit, Daten aus allen nicht-systembezogenen Sammlungen sowie zu den folgenden Systemsammlungen:system.indexes, system.js und system.namespaces zu lesen. Die Rolle gewährt Lesezugriff, indem sie folgende Aktionen gewährt: - collStats
- dbHash
- dbStats
- Finden Sie
- killCursors
- Liste Indizes
- Liste Sammlungen
readWriteBietet alle Rechte der Leserolle sowie die Möglichkeit, Daten auf allen nicht-systembezogenen Sammlungen und der system.js Sammlung zu verändern. Die Rolle bietet folgende Aktionen auf diese Sammlungen: - collStats
- convertToCapped
- createCollection
- dbHash
- dbStats
- dropCollection
- createIndex
- dropIndex
- Emptycapped
- Finden Sie
- Insert
- killCursors
- Liste Indizes
- Liste Sammlungen
- entfernen
- renameCollectionSameDB
- aktualisieren
DatenbankverwaltungsrollenJede Datenbank umfasst die folgenden Aufgaben der Datenbankverwaltung: dbAdminBietet die folgenden Aktionen für die System.indexes, system.namespaces und system.profile Collections der Datenbank: - collStats
- dbHash
- dbStats
- Finden Sie
- killCursors
- Liste Indizes
- Liste Sammlungen
- dropCollection und createCollection nur auf system.profile
Geändert in Version 2.6.4: dbAdmin fügte die createCollection für die system.profilecollection hinzu. Frühere Versionen hatten die dropCollection nur in der system.profile Collection.
Bietet die folgenden Aktionen für alle nicht-systembezogenen Sammlungen. Diese Rolle beinhaltet keinen vollständigen Lesezugriff auf Nicht-System-Sammlungen: - bypassDocumentValidation
- collMod
- collStats
- Kompakt
- convertToCapped
- createCollection
- createIndex
- dbStats
- dropCollection
- dropDatabase
- dropIndex
- enableProfiler
- reIndex
- renameCollectionSameDB
- repairDatabase
- storageDetails
- validieren
dbOwnerDer Datenbankbesitzer kann jede administrative Aktion an der Datenbank ausführen. Diese Rolle vereint die von den Rollen readWrite, dbAdmin und userAdmin gewährten Rechte. userAdminBietet die Möglichkeit, Rollen und Benutzer in der aktuellen Datenbank zu erstellen und zu ändern. Diese Rolle gewährt auch indirekt Superuser-Zugriff entweder auf die Datenbank oder, falls es auf die Admin-Datenbank beschränkt ist, auf den Cluster. Die Rolle UserAdmin erlaubt es Benutzern, jedem Benutzer jegliche Rechte zu gewähren, einschließlich sich selbst. Die userAdmin-Rolle stellt ausdrücklich folgende Aktionen vor: - changeCustomData
- changePasswort
- createRole
- createUser
- DropRole
- dropUser
- StipendieRolle
- revokeRole
- AnsichtRolle
- viewUser
Cluster-VerwaltungsaufgabenDie Admin-Datenbank umfasst folgende Aufgaben zur Verwaltung des gesamten Systems und nicht nur eine einzelne Datenbank. Diese Aufgaben umfassen, sind aber nicht beschränkt auf, Verwaltungsfunktionen für Replica-Set und Sharded Cluster. clusterAdminBietet den besten Zugriff auf das Cluster-Management. Diese Rolle vereint die von theclusterManager, clusterMonitor und hostManager gewährten Privilegien. Zusätzlich bietet die Rolle die Aktion thedropDatabase. clusterManagerBietet Management- und Überwachungsmaßnahmen auf dem Cluster an. Ein Benutzer mit dieser Rolle kann auf die Konfiguration und lokale Datenbanken zugreifen, die jeweils für Sharding und Replikation verwendet werden. Bietet folgende Aktionen für den gesamten Cluster: - addShard
- applicationMessage
- Aufräumen Verwaist
- flushRouterConfig
- listeSplitter
- entfernenSplitter
- replSetConfigure
- replSetGetConfig
- replSetGetStatus
- replSetStateChange
- Resync
Bietet folgende Aktionen für alle Datenbanken im Cluster: - enableSharding
- moveChunk
- splitChunk
- splitVector
In der Konfigurationsdatenbank werden folgende Aktionen in der Einstellungssammlung bereitgestellt: - Insert
- entfernen
- aktualisieren
In der Konfigurationsdatenbank werden folgende Aktionen für alle Konfigurationssammlungen sowie für thesystem.indexes, system.js und system.namespaces bereitgestellt: - collStats
- dbHash
- dbStats
- Finden Sie
- killCursors
In der lokalen Datenbank werden folgende Aktionen auf der Replset-Sammlung bereitgestellt: - collStats
- dbHash
- dbStats
- Finden Sie
- killCursors
clusterMonitorBietet schreibgeschützten Zugriff auf Überwachungstools wie den MongoDB Cloud Manager und den Ops Manager Monitoring Agent. Bietet folgende Aktionen für den gesamten Cluster: - connPoolStats
- cursorInfo
- getCmdLineOpts
- getLog
- getParameter
- getShardMap
- hostInfo
- Inprog
- Liste Datenbanken
- listeSplitter
- netstat
- replSetGetStatus
- replSetGetConfig
- serverStatus
- ShardingState
- Nach oben
Bietet folgende Aktionen für alle Datenbanken im Cluster: - collStats
- dbStats
- getShardVersion
- indexStatistiken
Bietet die Suchaktion für alle system.profile-Sammlungen im Cluster an. Bietet die folgenden Aktionen für die Konfigurationssammlungen und system.indexes, system.js und system.namespaces-Sammlungen der Konfigurationsdatenbank: - collStats
- dbHash
- dbStats
- Finden Sie
- killCursors
hostManagerBietet die Möglichkeit, Server zu überwachen und zu verwalten. Bietet folgende Aktionen für den gesamten Cluster: - applicationMessage
- closeAllDatabases
- connPoolSync
- cpuProfiler
- diagLogging
- flushRouterConfig
- fsync
- invalidateUserCache
- killop
- logRotate
- Resync
- setParameter
- Stilllegung
- Berühren
- Freischalten
Bietet folgende Aktionen für alle Datenbanken im Cluster: - killCursors
- repairDatabase
Backup- und RestaurierungsrollenDie Administratordatenbank umfasst folgende Aufgaben zur Sicherung und Wiederherstellung von Daten: BackupBietet minimale Rechte für das Sichern von Daten. Diese Rolle bietet ausreichende Rechte, um den MongoDB Cloud Manager Backup Agent, den Ops Manager Backup Agent oder Mongodump zur Sicherung einer gesamten Mongod-Instanz zu verwenden. Stellt die Einfügungs- und Aktualisierungsaktionen für die mms.backup-Sammlung in der Admin-Datenbank und für die Einstellungssammlung in der Konfigurationsdatenbank bereit. Stellt die listDatabases-Aktion für den gesamten Cluster bereit. Stellt die Aktion listCollections auf allen Datenbanken bereit. Bietet die Aktion listIndexes für alle Sammlungen. Bietet die Aktion BypassDocumentValidation für Sammlungen mit Dokumentvalidierung an. Bietet die Suchaktion für Folgendes: - Alle Nicht-System-Sammlungen im Cluster
- Alle folgenden Systemsammlungen im Cluster: System.Indexes, System.Namespaces und system.js
- Die Sammlungen admin.system.users und admin.system.roles
- Die config.settings-Sammlung
- Legacy-System.users-Sammlungen aus Versionen von MongoDB vor Version 2.6
Geändert in Version 3.2.1: Die Backup-Rolle bietet zusätzliche Rechte zur Sicherung der system.profile-Sammlungen, die beim Ausführen von Datenbankprofilierung existieren. Früher benötigten Nutzer einen zusätzlichen Lesezugriff auf dieser Sammlung. WiederherstellungGewährt Privilegien, die benötigt werden, um Daten aus Backups wiederherzustellen, die keine system.profilecollection-Daten enthalten. Diese Rolle ist ausreichend, wenn man Daten mit mongorestore ohne die Option --oplogReplay wiederherstellt. Wenn die Sicherungsdaten system.profile Collection enthalten und die Zieldatenbank die system.profile Collection nicht enthält, versucht mongorestore, die Sammlung zu erstellen, obwohl Das Programm stellt System.Profile-Dokumente tatsächlich nicht wieder her. Daher benötigt der Benutzer zusätzliche Rechte, um createCollection und convertToCapped-Aktionen auf der system.profile Collection für eine Datenbank auszuführen. Die eingebauten Rollen dbAdmin und dbAdminAnyDatabase bieten die zusätzlichen Privilegien. Wenn mongorestore mit --oplogReplay ausgeführt wird, reicht die Restore-Rolle nicht aus, um den Oplog erneut abzuspielen. Um den Oplog erneut abzuspielen, erstelle eine benutzerdefinierte Rolle, die anyAction auf anyResource hat, und gewähre nur Benutzern, die mongorestore mit --oplogReplay ausführen müssen.
Bietet folgende Aktionen für alle nicht-systembezogenen Sammlungen und system.js Sammlungen im Cluster; auf den Sammlungen admin.system.users und admin.system.roles in der Admin-Datenbank; und auf legacy-system.users-Sammlungen aus Versionen von MongoDB vor 2.6: - collMod
- createCollection
- createIndex
- dropCollection
- Insert
Stellt die Aktion listCollections auf allen Datenbanken bereit. Bietet folgende zusätzliche Aktionen auf admin.system.users und legacy-system.userscollections: - Finden Sie
- entfernen
- aktualisieren
Stellt die Suchaktion für alle system.namespaces-Sammlungen im Cluster bereit. Obwohl restore die Möglichkeit beinhaltet, die Dokumente in der admin.system.userscollection mit normalen Änderungsoperationen zu verändern, ändern Sie diese Daten nur über das Benutzermanagement Methoden.
All-Datenbank-RollenDie Admin-Datenbank bietet folgende Rollen, die für alle Datenbanken in einer Mongod-Instanz gelten und ungefähr mit ihren Einzeldatenbank-Äquivalenten äquivalent sind: readAnyDatabaseBietet die gleichen Schreibberechtigungen wie Leseberechtigungen, außer dass sie für alle Datenbanken im Cluster gelten. Die Rolle stellt außerdem die listDatabases-Aktion für den gesamten Cluster bereit. readWriteAnyDatabaseBietet die gleichen Lese- und Schreibrechte wie readWrite, jedoch gilt sie für alle Datenbanken im Cluster. Die Rolle stellt außerdem die listDatabases-Aktion für den gesamten Cluster bereit. userAdminAnyDatabaseBietet denselben Zugriff auf Benutzerverwaltungsoperationen wie userAdmin, außer dass er für alle Datenbanken im Cluster gilt. Die Rolle bietet außerdem folgende Aktionen für den gesamten Cluster: - authSchemaUpgrade
- invalidateUserCache
- Liste Datenbanken
Die Rolle bietet außerdem folgende Aktionen auf den Sammlungen admin.system.users und admin.system.roles in der Admin-Datenbank sowie auf den alten system.userscollections aus Versionen von MongoDB vor 2.6: - collStats
- dbHash
- dbStats
- Finden Sie
- killCursors
- planCacheRead
Geändert in Version 2.6.4: userAdminAnyDatabase fügte folgende Berechtigungen für theadmin.system.users und admin.system.roles hinzu:
Die userAdminAnyDatabase-Rolle schränkt die Berechtigungen, die ein Benutzer erteilen kann, nicht ein. Daher können userAdminAnyDatabase-Nutzer sich Rechte gewähren, die über ihre aktuellen Rechte hinausgehen, und sogar alle Privilegien, auch wenn die Rolle dies nicht tut Autorisiere explizit Rechte über die Benutzerverwaltung hinaus. Diese Rolle ist effektiv ein MongoDB-System-Superuser. dbAdminAnyDatabaseBietet denselben Zugriff auf Datenbankadministrationsoperationen wie dbAdmin, außer dass er für alle Datenbanken im Cluster gilt. Die Rolle stellt außerdem die listDatabases-Aktion für den gesamten Cluster bereit.
Superuser-RollenMehrere Rollen bieten entweder indirekten oder direkten systemweiten Superuser-Zugriff. Die folgenden Rollen bieten die Möglichkeit, jedem Benutzer jedes Privilegium auf jeder Datenbank zuzuweisen, was bedeutet, dass Benutzer mit einer dieser Rollen sich jedes Privilegium auf jeder Datenbank zuweisen können: - dbOwner-Rolle, wenn sie auf die Admin-Datenbank beschränkt ist.
- userAdmin-Rolle, wenn sie auf die Admin-Datenbank abgegrenzt ist
- userAdminAnyDatabase-Rolle
Die folgende Rolle gewährt volle Rechte auf allen Ressourcen: wurzelBietet Zugriff auf die Operationen und alle Ressourcen der readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin, Restore kombiniert. Geändert in Version 3.0.7: Die Wurzel hat eine Validate-Aktion auf dem System. Inkasso. Früher enthält root keinen Zugriff auf Sammlungen, die mit dem System beginnen. Präfix außer System.Indexes und System.Namespaces. Die Wurzelrolle umfasst Privilegien aus der Wiederherstellungsrolle.
Interne Rolle__systemMongoDB weist diese Rolle Benutzerobjekten zu, die Clustermitglieder repräsentieren, wie Replica-Set-Mitglieder und Mongos-Instanzen. Die Rolle berechtigt den Inhaber, jegliche Maßnahme gegen jedes Objekt in der Datenbank zu ergreifen. Weisen Sie diese Rolle nicht Benutzerobjekten zu, die Anwendungen oder menschliche Administratoren repräsentieren, außer in Ausnahmefällen. Wenn Sie Zugriff auf alle Aktionen auf allen Ressourcen benötigen, zum Beispiel um applyOps-Befehle auszuführen, weisen Sie diese Rolle nicht zu. Stattdessen sollte eine benutzerdefinierte Rolle erstellt werden, die anyAction auf anyResource gewährt, und sicherstellen, dass nur die Nutzer, die Zugriff auf diese Operationen benötigen, diesen Zugriff haben. Original: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|