|
MongoDB предоставя достъп до данни и команди чрез ролево упълномощаване и предоставя вградени роли, които осигуряват различните нива на достъп, обикновено необходими в система за бази данни. Можете също така да създавате роли, дефинирани от потребителя. Ролята дава права за изпълнение на набори от действия върху определени ресурси. Дадена роля се прилага за базата данни, върху която е дефинирана, и може да предостави достъп до ниво на колекция с детайлност. Всяка от вградените роли в MongoDB дефинира достъп на ниво база данни за всички несистемни колекции в базата данни на ролята и на ниво колекция за всички системни колекции. MongoDB предоставя вградените потребителски и администраторски роли на база данни във всяка база данни. MongoDB предоставя всички други вградени роли само в администраторската база данни. Този раздел описва привилегиите за всяка вградена роля. Можете също така да видите привилегиите за вградена роля по всяко време, като издадете командата rolesInfo с полетата showPrivileges и showBuiltinRolesfields, настроени на true. Роли на потребители в бази данниВсяка база данни включва следните клиентски роли: ПрочететеОсигурява възможност за четене на данни за всички колекции извън системата и за следните системни колекции: system.indexes, system.js и system.namespaces колекции. Ролята осигурява достъп за четене чрез предоставяне на следните действия: - collStats
- dbHash
- dbStats
- Намери
- killКурсори
- listIndexes
- списъкКолекции
четиПишиПредоставя всички привилегии на ролята за четене, плюс възможност за модифициране на данни във всички колекции извън системата и колекцията system.js. Ролята предоставя следните действия върху тези колекции: - collStats
- convertToCapped
- createCollection
- dbHash
- dbStats
- dropCollection
- createIndex
- dropIndex
- празна капак
- Намери
- Вмък
- killКурсори
- listIndexes
- списъкКолекции
- Премахване
- renameCollectionSameDB
- Актуализация
Роли в администрацията на бази данниВсяка база данни включва следните роли в администрацията на бази данни: dbAdminПредоставя следните действия върху колекциите system.indexes, system.namespaces и system.profile в базата данни: - collStats
- dbHash
- dbStats
- Намери
- killКурсори
- listIndexes
- списъкКолекции
- dropCollection и createCollection само на system.profile
Промяна във версия 2.6.4: dbAdmin добави createCollection за system.profilecollection. Предишните версии имаха dropCollection само в system.profile collection.
Предоставя следните действия върху всички колекции извън системата. Тази роля не включва пълен достъп до четене на колекции, които не са системни: - bypassDocumentValidation
- collMod
- collStats
- компакт
- convertToCapped
- createCollection
- createIndex
- dbStats
- dropCollection
- dropDatabase
- dropIndex
- enableProfiler
- reIndex
- renameCollectionSameDB
- repairDatabase
- съхранение Подробности
- валидиране
dbOwnerСобственикът на базата данни може да извършва всякакви административни действия върху базата данни. Тази роля комбинира привилегиите, предоставени от ролите readWrite, dbAdmin и userAdmin. userAdminОсигурява възможност за създаване и модифициране на роли и потребители в текущата база данни. Тази роля също така косвено предоставя достъп на суперпотребител до базата данни или, ако е ограничена до администраторската база данни, до клъстера. Ролята TheuserAdmin позволява на потребителите да предоставят всякакви привилегии на всеки потребител, включително и на себе си. Ролята userAdmin изрично предоставя следните действия: - changeCustomData
- changePassword
- createRole
- createUser
- dropRole
- dropUser
- grantРоля
- revokeRole
- viewРоля
- viewUser
Роли в администрацията на клъстераАдминистраторската база данни включва следните роли за администриране на цялата система, а не само на една база данни. Тези роли включват, но не се ограничават до, административни функции на набори от реплики и шардирани клъстери. clusterAdminОсигурява най-голям достъп до управление на клъстера. Тази роля комбинира привилегиите, предоставени от ролите theclusterManager, clusterMonitor и hostManager. Освен това ролята предоставя действие на thedropDatabase. clusterManagerОсигурява управление и мониторинг на клъстера. Потребител с тази роля може да има достъп до локалните бази данни на конфигурацията, които се използват съответно при шардиране и репликация. Предоставя следните действия върху клъстера като цяло: - addShard
- applicationСъобщение
- почистванеСираче
- flushRouterConfig
- listShards
- премахни Шард
- replSetConfigure
- replSetGetConfig
- replSetGetStatus
- replSetStateChange
- ресинхронизиране
Предоставя следните действия върху всички бази данни в клъстера: - enableSharding
- moveChunk
- splitChunk
- splitVector
В конфигурационната база данни предоставя следните действия върху колекцията от настройки: - Вмък
- Премахване
- Актуализация
В конфигурационната база данни предоставя следните действия върху всички конфигурационни колекции и върху колекциите thesystem.indexes, system.js и system.namespaces: - collStats
- dbHash
- dbStats
- Намери
- killКурсори
В локалната база данни предоставя следните действия върху колекцията на replset: - collStats
- dbHash
- dbStats
- Намери
- killКурсори
clusterMonitorОсигурява достъп само за четене до инструменти за мониторинг, като MongoDB Cloud Manager и Ops Manager monitoring agent. Предоставя следните действия върху клъстера като цяло: - connPoolStats
- cursorInfo
- getCmdLineOpts
- getLog
- getParameter
- getShardMap
- hostInfo
- inprog
- listБази данни
- listShards
- netstat
- replSetGetStatus
- replSetGetConfig
- serverStatus
- shardingState
- Горе
Предоставя следните действия върху всички бази данни в клъстера: - collStats
- dbStats
- getShardVersion
- indexStats
Осигурява действието за намиране на всички колекции system.profile в клъстера. Предоставя следните действия в конфигурационните колекции на конфигурационната база данни и колекциите system.indexes, system.js и system.namespaces: - collStats
- dbHash
- dbStats
- Намери
- killКурсори
hostManagerОсигурява възможност за наблюдение и управление на сървъри. Предоставя следните действия върху клъстера като цяло: - applicationСъобщение
- closeAllDatabases
- connPoolSync
- cpuProfiler
- diagLogging
- flushRouterConfig
- fsync
- invalidateUserCache
- killop
- logRotate
- ресинхронизиране
- setParameter
- Затваряне
- Докосвам
- Отключване
Предоставя следните действия върху всички бази данни в клъстера: - killКурсори
- repairDatabase
Резервни и реставрационни ролиАдминистраторската база данни включва следните роли за архивиране и възстановяване на данни: Резервно копиеОсигурява минимални привилегии, необходими за архивиране на данни. Тази роля предоставя достатъчни права за използване на backup agent на MongoDB Cloud Manager, Ops Manager backup agent или за използване на mongodump за архивиране на цяла инстанция mongod. Предоставя действията за вмъкване и актуализация в колекцията mms.backup в администраторската база данни и в колекцията настройки в конфигурационната база данни. Предоставя действието listDatabases върху клъстера като цяло. Предоставя действието listCollections във всички бази данни. Предоставя действието listIndexes за всички колекции. Осигурява действието bypassDocumentValidation за колекции с валидация на документи. Предоставя действието за намиране на следните въпроси: - всички несистемни колекции в клъстера
- всички следващи системни колекции в клъстера: system.indexes, system.namespaces и system.js
- колекциите admin.system.users и admin.system.roles
- Колекцията config.settings
- наследени колекции system.users от версии на MongoDB преди версия 2.6
Променено във версия 3.2.1: Ролята за резервно копие предоставя допълнителни права за архивиране на колекциите thesystem.profile, които съществуват при работа с профилиране на база данни. Преди това потребителите се нуждаеха от допълнителен достъп за четене на тази колекция. ВъзстановяванеПредоставя привилегии, необходими за възстановяване на данни от резервни копия, които не включват данни от system.profilecollection. Тази роля е достатъчна при възстановяване на данни с mongorestore без опцията --oplogReplay. Ако резервните данни включват данни от system.profile колекцията, а целевата база данни не съдържа колекцията system.profile, mongorestore се опитва да създаде колекцията, въпреки че Програмата всъщност не възстановява документите на system.profile. Поради това потребителят се нуждае от допълнителни права, за да извършва действия createCollection и convertToCapped върху колекцията system.profile за база данни. Вградените роли dbAdmin и dbAdminAnyDatabase предоставят допълнителни привилегии. Ако се използва mongorestore с --oplogReplay, ролята на възстановяване е недостатъчна за повторно възпроизвеждане на оплога. За да преиграете oplog-а, създайте потребителски дефинирана роля, която има anyAction върху anyResource и предоставя само на потребители, които трябва да стартират mongorestore с --oplogReplay.
Предоставя следните действия върху всички несистемни колекции и system.js колекции в клъстера; в колекциите admin.system.users и admin.system.roles в админ базата данни; и в колекциите на наследени system.users от версии на MongoDB преди версия 2.6: - collMod
- createCollection
- createIndex
- dropCollection
- Вмък
Предоставя действието listCollections във всички бази данни. Предоставя следните допълнителни действия на admin.system.users и наследени system.userscollections: - Намери
- Премахване
- Актуализация
Осигурява действие за намиране във всички колекции system.namespaces в клъстера. Въпреки че възстановяването включва възможност за промяна на документите в admin.system.userscollection чрез нормални операции за модификация, тези данни се модифицират само чрез потребителското управление методи.
Роли изцяло в бази данниАдминистраторската база данни предоставя следните роли, които се прилагат за всички бази данни в инстанция на mongod и са приблизително еквивалентни на техните еквиваленти в една база данни: readAnyDatabaseПредоставя същите права само за четене като за четене, но се прилага за всички бази данни в клъстера. Ролята също така предоставя действието listDatabases върху клъстера като цяло. readWriteAnyDatabaseПредоставя същите права за четене и запис като readWrite, но се прилага за всички бази данни в клъстера. Ролята също така предоставя действието listDatabases върху клъстера като цяло. userAdminAnyDatabaseОсигурява същия достъп до операциите за администриране на потребителите като userAdmin, но се прилага за всички бази данни в клъстера. Ролята също така предоставя следните действия върху клъстера като цяло: - authSchemaUpgrade
- invalidateUserCache
- listБази данни
Ролята също така предоставя следните действия върху колекциите admin.system.users и admin.system.roles в администраторската база данни, както и върху наследените system.userscollections от версии на MongoDB преди версия 2.6: - collStats
- dbHash
- dbStats
- Намери
- killКурсори
- planCacheRead
Променено във версия 2.6.4: userAdminAnyDatabase добави следните права върху колекциите theadmin.system.users и admin.system.roles:
Ролята userAdminAnyDatabase не ограничава разрешенията, които потребителят може да предостави. В резултат на това потребителите на userAdminAnyDatabase могат да си предоставят привилегии, надвишаващи настоящите им привилегии, и дори да могат да си предоставят всички привилегии, въпреки че ролята не го прави изрично упълномощаване на привилегии, които надхвърлят потребителската администрация. Тази роля е ефективно суперпотребител на системата на MongoDB. dbAdminAnyDatabaseОсигурява същия достъп до операции за администриране на бази данни като dbAdmin, с изключение че се прилага за всички бази данни в клъстера. Ролята също така предоставя действието listDatabases върху клъстера като цяло.
Роли на суперпотребителиНяколко роли осигуряват или индиректен, или директен достъп на суперпотребители в цялата система. Следните роли предоставят възможност да се присвоява на всеки потребител каквато и да е привилегия във всяка база данни, което означава, че потребителите с една от тези роли могат да си присвояват всякакви привилегии във всяка база данни: - dbOwner роля, когато е ограничена към администраторската база данни
- userAdmin роля, когато е ограничена към администраторската база данни
- userAdminAnyDatabase роля
Следната роля предоставя пълни права върху всички ресурси: коренОсигурява достъп до операциите и всички ресурси на readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin роли, възстановяване комбинирани. Променено във версия 3.0.7: Root има validate action на системата. колекции. Преди това root не включваше достъп до колекции, които започват със системата. префикси, различни от system.indexes и system.namespaces. Основната роля включва привилегии от ролята за възстановяване.
Вътрешна роля__systemMongoDB възлага тази роля на потребителски обекти, които представят членове на клъстера, като членове на реплики и mongos инстанции. Тази роля дава право на притежателя да предприеме всякакви действия срещу всеки обект в базата данни. Не възлагайте тази роля на потребителски обекти, представляващи приложения или човешки администратори, освен в изключителни случаи. Ако имате нужда от достъп до всички действия на всички ресурси, например за изпълнение на applyOps команди, не възлагайте тази роля. Вместо това, създайте потребителски дефинирана роля, която предоставя anyAction на anyResource и осигурете, че само потребителите, които имат достъп до тези операции, имат този достъп. Оригинал: https://docs.mongodb.com/manual/reference/built-in-roles/#built-in-roles
|