|
MongoDB udostępnia dane i polecenia poprzez autoryzację opartą na rolach oraz zapewnia wbudowane role, które zapewniają różne poziomy dostępu powszechnie potrzebne w systemie bazodanowym. Możesz także tworzyć role zdefiniowane przez użytkownika. Rola przyznaje uprawnienia do wykonywania zestawów działań na zdefiniowanych zasobach. Dany wpis dotyczy bazy danych, na której jest zdefiniowany, i może przyznawać dostęp aż do poziomu szczegółowości kolekcji. Każda z wbudowanych ról MongoDB definiuje dostęp na poziomie bazy danych dla wszystkich kolekcji niesystemowych w bazie danych oraz na poziomie kolekcji dla wszystkich kolekcji systemowych. MongoDB zapewnia wbudowane role użytkownika i administratora bazy danych w każdej bazie danych. MongoDB udostępnia wszystkie pozostałe wbudowane role wyłącznie w bazie danych administratorów. Ta sekcja opisuje uprawnienia dla każdej wbudowanej roli. Możesz także w dowolnym momencie zobaczyć uprawnienia dla wbudowanej roli, wydając komendę rolesInfo z ustawieniami showPrivileges i showBuiltinRolesfields na true. Role użytkowników bazy danychKażda baza danych zawiera następujące role klienta: przeczytajUmożliwia odczyt danych ze wszystkich kolekcji niesystemowych oraz z następujących kolekcji systemowych: system.indexes, system.js oraz system.namespaces. Rola zapewnia dostęp do odczytu, przyznając następujące akcje: - collStats
- dbHash
- dbStats
- znajdź
- killCursors
- listIndexes
- ListaKolekcje
readWriteZapewnia wszystkie uprawnienia roli odczytu oraz możliwość modyfikacji danych we wszystkich kolekcjach niesystemowych oraz kolekcji system.js. Rola ta realizuje następujące działania dotyczące tych kolekcji: - collStats
- konwersjaToCappped
- createCollection
- dbHash
- dbStats
- dropCollection
- createIndex
- dropIndex
- pusta czapka
- znajdź
- Insert
- killCursors
- listIndexes
- ListaKolekcje
- usuń
- renameCollectionSameDB
- Aktualizacja
Role administratora baz danychKażda baza danych obejmuje następujące role administratora bazy danych: dbAdminZapewnia następujące działania w kolekcjach system.indexes, system.namespaces oraz system.profile bazy danych: - collStats
- dbHash
- dbStats
- znajdź
- killCursors
- listIndexes
- ListaKolekcje
- dropCollection i createCollection tylko na system.profile
Zmieniono w wersji 2.6.4: dbAdmin dodał createCollection dla system.profilecollection. Poprzednie wersje miały tylko dropCollection w kolekcji system.profile.
Zapewnia następujące działania we wszystkich kolekcjach niesystemowych. Ta rola nie obejmuje pełnego dostępu do odczytu w kolekcjach niesystemowych: - bypassDocumentValidation
- collMod
- collStats
- Compact
- konwersjaToCappped
- createCollection
- createIndex
- dbStats
- dropCollection
- dropDatabase
- dropIndex
- enableProfiler
- reIndex
- renameCollectionSameDB
- repairDatabase
- storageSzczegóły
- Validate
dbOwnerWłaściciel bazy danych może wykonać dowolną akcję administracyjną nad bazą danych. Ta rola łączy uprawnienia nadane przez role readWrite, dbAdmin i userAdmin. userAdminUmożliwia tworzenie i modyfikowanie ról oraz użytkowników w aktualnej bazie danych. Ta rola pośrednio zapewnia także dostęp superużytkownika do bazy danych lub, jeśli jest ograniczony do bazy danych administratorów, do klastra. Rola TheuserAdmin pozwala użytkownikom przyznać dowolne uprawnienia, w tym sobie. Rola userAdmin wyraźnie zapewnia następujące akcje: - changeCustomData
- changePassword
- createRole
- createUser
- dropRole
- dropUser
- Rola grantowa
- revokeRole
- viewRole
- viewUser
Role administracji klastramiBaza danych administratorów obejmuje następujące role administrowania całym systemem, a nie tylko jedną bazą danych. Role te obejmują, ale nie ograniczają się do, funkcji administracyjnych zestawów replik i fragmentów klastrów. clusterAdminZapewnia najlepszy dostęp do zarządzania klastrami. Ta rola łączy uprawnienia przyznane przez role theclusterManager, clusterMonitor oraz hostManager. Dodatkowo rola ta oferuje działanie thedropDatabase. clusterManagerZapewnia działania zarządzania i monitorowania klastra. Użytkownik pełniący tę rolę może uzyskać dostęp do baz danych konfiguracyjnych i lokalnych, które są wykorzystywane odpowiednio do shardingu i replikacji. Zapewnia następujące działania dotyczące całego klastra: - addShard
- applicationMessage
- sprzątanie Sierota
- flushRouterConfig
- listShardy
- usuń odłamek
- replSetConfigure
- replSetGetConfig
- replSetGetStatus
- replSetZmiana Stanu
- resync
Zapewnia następujące działania we wszystkich bazach danych w klastrze: - enableSharding
- moveChunk
- splitChunk
- splitVector
W bazie danych konfiguracyjnej oferuje następujące działania w kolekcji ustawień: W bazie danych konfiguracyjnej oferuje następujące działania we wszystkich kolekcjach konfiguracyjnych oraz w kolekcjach thesystem.indexes, system.js i system.namespaces: - collStats
- dbHash
- dbStats
- znajdź
- killCursors
W lokalnej bazie danych oferuje następujące działania na kolekcji replset: - collStats
- dbHash
- dbStats
- znajdź
- killCursors
clusterMonitorZapewnia dostęp tylko do odczytu narzędzi monitorujących, takich jak MongoDB Cloud Manager oraz agent monitorujący Ops Manager. Zapewnia następujące działania dotyczące całego klastra: - connPoolStats
- cursorInfo
- getCmdLineOpts
- getLog
- getParameter
- getShardMap
- hostInfo
- inprog
- listBazy danych
- listShardy
- netstat
- replSetGetStatus
- replSetGetConfig
- serwerStatus
- shardingState
- Do góry
Zapewnia następujące działania we wszystkich bazach danych w klastrze: - collStats
- dbStats
- getShardVersion
- indexStats
Zapewnia akcję wyszukiwania we wszystkich kolekcjach system.profile w klastrze. Zapewnia następujące działania w kolekcjach konfiguracyjnych bazy danych oraz kolekcjach system.indexes, system.js i system.namespaces: - collStats
- dbHash
- dbStats
- znajdź
- killCursors
hostManagerZapewnia możliwość monitorowania i zarządzania serwerami. Zapewnia następujące działania dotyczące całego klastra: - applicationMessage
- closeAllDatabases
- connPoolSync
- cpuProfiler
- DiagLogging
- flushRouterConfig
- fsync
- invalidateUserCache
- killop
- logRotate
- resync
- setParameter
- Wyłączenie
- Dotyk
- Odblokuj
Zapewnia następujące działania we wszystkich bazach danych w klastrze: - killCursors
- repairDatabase
Role Backupu i RenowacjiBaza danych administracyjnych obejmuje następujące role do tworzenia kopii zapasowych i przywracania danych: ZapasZapewnia minimalne uprawnienia potrzebne do tworzenia kopii zapasowych danych. Ta rola zapewnia wystarczające uprawnienia do korzystania z agenta backupu MongoDB Cloud Manager, agenta operacyjnego menedżera lub do użycia mongodump do wykonania kopii zapasowej całej instancji mongod. Zapewnia działania wstawienia i aktualizacji w kolekcji mms.backup w bazie danych administratorów oraz w kolekcji ustawień w bazie konfiguracyjnej. Zapewnia działanie listDatabases na całym klastrze. Zapewnia akcję listCollections we wszystkich bazach danych. Zapewnia akcję listIndexes dla wszystkich kolekcji. Zapewnia akcję bypassDocumentValidation dla kolekcji posiadających walidację dokumentów. Zapewnia akcję wyszukiwania w następujących kwestiach: - wszystkie kolekcje niesystemowe w klastrze
- wszystkie następujące kolekcje systemowe w klastrze: system.indexes, system.namespaces oraz system.js
- kolekcje admin.system.users oraz admin.system.roles
- kolekcja config.settings
- kolekcje starszych system.users z wersji MongoDB sprzed 2.6
Zmieniono w wersji 3.2.1: Rola kopii zapasowej zapewnia dodatkowe uprawnienia do tworzenia kopii zapasowych kolekcji thesystem.profile, które istnieją podczas uruchamiania profilowania bazy danych. Wcześniej użytkownicy potrzebowali dodatkowego dostępu do odczytu tej kolekcji. PrzywróćZapewnia uprawnienia niezbędne do przywrócenia danych z kopii zapasowych, które nie zawierają danych system.profilecollection. Ta rola jest wystarczająca przy przywracaniu danych za pomocą mongorestore bez opcji --oplogReplay. Jeśli dane kopii zapasowej zawierają dane zbiorcze system.profile, a docelowa baza nie zawiera kolekcji system.profile, mongorestore próbuje utworzyć tę kolekcję, mimo że Program nie przywraca faktycznie dokumentów system.profile. W związku z tym użytkownik wymaga dodatkowych uprawnień, aby wykonać działania createCollection i convertToCapped w kolekcji system.profile dla bazy danych. Wbudowane role dbAdmin i dbAdminAnyDatabase zapewniają dodatkowe uprawnienia. Jeśli uruchamiasz mongorestore z --oplogReplay, rola restore nie jest wystarczająca, by odtworzyć oplog. Aby powtórzyć oplog, stwórz rolę zdefiniowaną przez użytkownika, która ma dowolną Akcję na dowolnym Zasobu i przydziel ją tylko użytkownikom, którzy muszą uruchomić mongorestore z --oplogReplay.
Zapewnia następujące działania dla wszystkich kolekcji niesystemowych oraz system.js kolekcji w klastrze; na kolekcjach admin.system.users i admin.system.roles w bazie danych administratorów; oraz na starszych kolekcjach system.users z wersji MongoDB sprzed 2.6: - collMod
- createCollection
- createIndex
- dropCollection
- Insert
Zapewnia akcję listCollections we wszystkich bazach danych. Zapewnia następujące dodatkowe działania na admin.system.users oraz starszych system.userscollections: Zapewnia akcję wyszukiwania we wszystkich kolekcjach system.namespaces w klastrze. Chociaż przywracanie obejmuje możliwość modyfikowania dokumentów w admin.system.userscollection za pomocą normalnych operacji modyfikacji, modyfikuj te dane tylko za pomocą zarządzania użytkownikami metodami.
Role w całej bazie danychBaza danych administracyjnych zapewnia następujące role, które dotyczą wszystkich baz danych w instancji mongoda i są w przybliżeniu równoważne ich odpowiednikom w pojedynczej bazie danych: readAnyDatabaseZapewnia takie same uprawnienia tylko do odczytu jak do odczytu, z tą różnicą, że dotyczy wszystkich baz danych w klastrze. Rola ta zapewnia również działania listDatabases na całym klastrze. readWriteAnyDatabaseZapewnia takie same uprawnienia do odczytu i zapisu jak readWrite, z tą różnicą, że dotyczy wszystkich baz danych w klastrze. Rola ta zapewnia również działania listDatabases na całym klastrze. userAdminAnyDatabaseZapewnia taki sam dostęp do operacji administracyjnych użytkownika jak userAdmin, z tą różnicą, że dotyczy wszystkich baz danych w klastrze. Rola ta oferuje również następujące działania dotyczące całego klastra: - authSchemaUpgrade
- invalidateUserCache
- listBazy danych
Rola ta oferuje także następujące działania w kolekcjach admin.system.users i admin.system.roles w bazie danych administratorów oraz na starszych system.userscollections z wersji MongoDB przed wersją 2.6: - collStats
- dbHash
- dbStats
- znajdź
- killCursors
- planCacheRead
Zmieniono w wersji 2.6.4: userAdminAnyDatabase dodał następujące uprawnienia do kolekcji theadmin.system.users oraz admin.system.roles:
Rola userAdminAnyDatabase nie ogranicza uprawnień, które użytkownik może przyznać. W rezultacie użytkownicy userAdminAnyDatabase mogą przyznawać sobie uprawnienia przekraczające obecne uprawnienia, a nawet przyznawać sobie wszystkie uprawnienia, nawet jeśli rola tego nie robi Wyraźnie autoryzować uprawnienia wykraczające poza administrację użytkownika. Ta rola jest w praktyce superużytkownikiem systemu MongoDB. dbAdminAnyDatabaseZapewnia taki sam dostęp do operacji administracji baz danych jak dbAdmin, z tą różnicą, że dotyczy wszystkich baz danych w klastrze. Rola ta zapewnia również działania listDatabases na całym klastrze.
Role superużytkownikaKilka ról zapewnia pośredni lub bezpośredni dostęp superużytkownika w całym systemie. Poniższe role umożliwiają przypisanie dowolnych uprawnień dowolnym użytkownikom w dowolnej bazie danych, co oznacza, że użytkownicy z jedną z tych ról mogą przypisać sobie dowolne uprawnienia w dowolnej bazie danych: - dbOwner, gdy jest przypisany do bazy danych administratorów
- rola userAdmin, gdy jest przypisana do bazy danych administratorów
- rola userAdminAnyDatabase
Następująca rola zapewnia pełne uprawnienia do wszystkich zasobów: korzeńZapewnia dostęp do operacji i wszystkich zasobów rol readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin, restore łącznie. Zmienione w wersji 3.0.7: Root ma akcję walidacji na systemie. Kolekcje. Wcześniej root nie obejmował dostępu do kolekcji rozpoczynających się od systemu. prefiks inny niż system.indexes i system.namespaces. Rola główna obejmuje uprawnienia z roli przywracania.
Rola wewnętrzna__systemMongoDB przypisuje tę rolę obiektom użytkownika reprezentującym członków klastra, takim jak repliki zestawu oraz instancje mongos. Rola ta uprawnia jej posiadacza do podjęcia dowolnych działań przeciwko dowolnemu obiektowi w bazie danych. Nie przypisuj tej roli obiektom użytkownika reprezentującym aplikacje lub administratorów ludzkich, chyba że w wyjątkowych okolicznościach. Jeśli potrzebujesz dostępu do wszystkich akcji na wszystkich zasobach, na przykład do uruchamiania poleceń applyOps, nie przypisuj tej roli. Zamiast tego stwórz rolę zdefiniowaną przez użytkownika, która przyznaje dowolną Operację na dowolnym Zasobu i zapewnij, że tylko użytkownicy potrzebujący dostępu do tych operacji mają ten dostęp. Oryginał: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|