1. 程式人生 > >MongoDB內建角色詳解(翻譯自官方文件)

MongoDB內建角色詳解(翻譯自官方文件)

1 資料庫使用者角色

每個資料庫都包含下列的角色:

read : 提供讀取所有的非系統集合的能力,也能讀取以下系統集合:system.indexes,system.js,system.namespaces
readWrite:提供所有讀許可權另外還能修改非系統集合和system.js集合

2 資料庫管理角色

每個資料庫都包含以下資料庫管理員角色

dbAdmin:提供執行管理任務的能力,比如schema相關的任務,索引和聚合分析。這個角色不能對使用者和角色做授權管理
dbOwner:資料庫擁有者可以在資料庫上執行任何管理動作,這個角色組合了readWrite,dbAdmin,userAdmin角色的特權
userAdmin

:在當前資料庫中建立和修改角色和使用者的能力,userAdmin角色允許使用者授予任何特權給任何使用者,包括他們自己,此角色還可以直接提供superuser 訪問任何資料庫,甚至是admin資料庫,叢集。
 

3  叢集管理角色

admin資料庫包括下列角色來管理整個系統而不僅僅是單個數據庫,這些角色包括但不限於副本集和分片叢集管理功能

clusterAdmin:提供最大的機器管理訪問許可權,此角色組合了clusterManager,clusterMonitor和hostManager角色,另外此角色還提供dropDatabase動作
clusterManager

:在機器上能進行管理和監控動作。擁有此角色的使用者可以訪問config和local資料庫,它們分別用於分片和副本集
clusterMonitor:為監控工具提供只讀許可權,比如MongoDB cloud manager 和ops manager 監控代理
hostManager:提供監控和管理伺服器的能力
 

4 備份和恢復角色

admin資料庫包含下列角色用來備份和恢復資料

backup:提供最小的備份資料的許可權,該角色提供了足夠的許可權用於:MongoDB cloud manager 備份代理、ops manager 備份代理或者用於mongodump備份整個mongod例項
restore

:提供許可權用來從備份恢復資料,但是不包括system.profile集合資料。此角色提供了足夠的許可權用於使用不帶--oplogReplay選項的mongorestore恢復資料
 

5 所有資料庫角色

下列角色在admin資料庫上都可獲取到,並能應用於所有資料庫除了local和config

readAnyDatabase:在所有的資料庫上提供和read特權一樣只讀的許可權,除了local和config
readWriteAnyDatabase:在所有的資料庫桑提供和readWrite一樣的許可權,除了local和config
userAdminAnyDatabase:在所有的資料庫桑提供和userAdmin一樣的許可權,除了local和config
dbAdminAnyDatabase:在所有的資料庫桑提供和dbAdmin一樣的許可權,除了local和config,此角色還能在叢集上執行listDatabases命令
 

6 超級使用者角色

root:提供readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin, restore, backup角色的組合許可權
 

7 內部角色

__system:提供對資料庫中任何物件採取任何操作的特權。

參考 官方文件