MongoDB提供一些內置角色,它給數據庫系統提供了不一樣的訪問級別。每一個數據庫都有內置的數據庫用戶角色和數據庫管理角色。admin數據庫則包含了額外的一些角色。mongodb
本頁面簡單描述了這些內置角色。每一個角色所賦予的特定的權限,請看Build-in Roles參考頁。數據庫
每一個數據庫包含以下角色:app
Role | Short Description |
---|---|
read | For the specific privileges granted by the role, see read.ide 提供對於non-system collections和如下system collections(system.indexes,system.js和system.namespaces)的讀權限。ui
|
readWrite | For the specific privileges granted by the role, see readWrite.this 提供了全部read所具備的權限,同時還具備修改non-system collections以及system.js collection的權限。spa |
每一個數據庫包含如下數據庫管理權限:rest
Role | Short Description |
---|---|
dbAdmin | For the specific privileges granted by the role, see dbAdmin.orm 能夠執行schema相關工做,建立索引/收集統計數據等。該角色沒有用戶和角色管理權限。server |
dbOwner | 能夠管理數據庫。它包含了readWrite/dbAdmin/userAdmin的角色權限。 |
userAdmin | For the specific privileges granted by the role, see userAdmin. 能夠在當前數據庫建立和修改用戶和角色。由於userAdmin容許相應用戶將任何特權授予給任何用戶,因此該角色能夠間接給數據庫提供超級用戶的權限,若是做用到admin數據庫,還能夠對集羣提供超級用戶的權限。 |
admin數據庫爲管理整個數據庫系統提供瞭如下角色。這些角色包含了副本集和分片集羣,但不限於此。
Role | Short Description |
---|---|
clusterAdmin | 集羣管理提供了集羣管理的最高權限。該角色包含的權限涵蓋clusterManager, clusterMonitor,hostManager。 另外,該角色可執行dropDatabase |
clusterManager | For the specific privileges granted by the role, see clusterManager. 提供了管理和監控集羣的功能。被賦予此角色的用戶能夠訪問config/local數據庫,這些數據庫分別被用於分片和副本。 |
clusterMonitor | For the specific privileges granted by the role, see clusterMonitor. 爲MongoDB Cloud Manager和Ops Manager監控agent提供只讀訪問權限。 |
hostManager | 用於監控和管理server For the specific privileges granted by the role, see hostManager. |
admin數據庫包含以下備份和恢復數據的角色。
Role | Short Description |
---|---|
backup | 提供備份數據所需的特權。該角色提供足夠的權限來使用MongoDB雲管理備份agent/Ops Manager備份agent,或mongodump。 For the specific privileges granted by the role, see backup. |
restore | Provides privileges needed to restore data with mongorestore without the --oplogReplay option or without system.profile collection data. 提供了使用mongorestore恢復數據的權限,mongorestore不能帶有參數--oplogReplay,也不能使用system.profile collection的數據。 For the specific privileges granted by the role, see restore. |
admin數據庫提供瞭如下角色能夠應用到全部數據庫,和單個數據庫中的角色大體等同。
Role | Short Description |
---|---|
readAnyDatabase | 和read提供相同的權限,只不過是該角色應用到全部數據庫。該角色同時能夠在整個集羣上使用listDatabases命令。 For the specific privileges granted by the role, see readAnyDatabase. |
readWriteAnyDatabase | 和readWrite提供相同的權限,只不過是該角色應用到全部數據庫。該角色同時能夠在整個集羣上使用listDatabases命令。 For the specific privileges granted by the role, see readWriteAnyDatabase. |
userAdminAnyDatabase | 和userAdmin提供相同的權限,只不過是該角色應用到全部數據庫。 由於userAdminAnyDatabase容許全部權限賦予給全部用戶,包括自身,因此間接提供了superuser權限。 For the specific privileges granted by the role, see userAdminAnyDatabase. |
dbAdminAnyDatabase | 和dbAdmin提供相同的權限,只不過是該角色應用到全部數據庫。該角色同時能夠在整個集羣上使用listDatabases命令。 For the specific privileges granted by the role, see dbAdminAnyDatabase. |
如下角色對全部資源提供所有的權限:
Role | Short Description |
---|---|
root | Provides access to the operations and all the resources of thereadWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabaseand clusterAdmin roles combined. For the specific privileges granted by the role, see root. |
內部角色
Role | Short Description |
---|---|
__system | Provides privileges to take any action against any object in the database. Do not assign this role to user objects representing applications or human administrators, other than in exceptional circumstances. For more information, see root. |
https://docs.mongodb.com/manual/core/security-built-in-roles/