mongo內置角色列表
角色類型 |
類型說明 |
角色名稱 |
說明 |
數據庫一般角色 (Database User Roles) |
每個數據庫都包含的一般角色; | read | 提供讀取所有非系統集合和部分系統集合的數據的能力,系統集合包括:system.indexes,system.js和system.namespaces集合。 |
readWrite | 提供read角色的所有權限以及修改所有非系統集合和system.js集合上的數據的能力。 | ||
數據庫管理角色 (Database Administration Roles) |
每個數據庫都包含的數據庫管理角色; | dbAdmin | 提供執行管理任務的能力,如與模式相關的任務,索引,收集統計信息。 此角色不授予用戶和角色管理的權限。 |
userAdmin | 提供在當前數據庫上創建和修改角色和用戶的能力。 | ||
dbOwner | 提供對數據庫執行任何管理操作的能力。 此角色結合了readWrite,dbAdmin和userAdmin角色授予的權限。 | ||
集群管理角色 (Cluster Administration Roles) |
在admin數據庫創建,用於管理整個數據庫集群系統而不是特定數據庫的角色。 這些角色包括但不限於副本集和分片群集管理功能。 |
clusterManager | 在集群上提供管理和監視操作。 具有此角色的用戶可以分別訪問在分片和復制中使用的config和local數據庫。 |
clusterMonitor | 為監控工具(如MongoDB Cloud Manager和Ops Manager監控代理)提供只讀訪問權限。 | ||
hostManager | 提供監視和管理服務器的能力。 | ||
clusterAdmin | 提供權限最高的群集管理訪問。 此角色結合了由clusterManager,clusterMonitor和hostManager角色授予的權限。 此外,該角色還提供了dropDatabase操作。 | ||
備份和恢復角色 (Backup and Restoration Roles) |
在admin數據庫創建,用於專門的備份和恢復的角色 | backup | 提供備份數據所需的權限。 此角色提供足夠的權限來使用MongoDB Cloud Manager備份代理,Ops Manager備份代理或使用mongodump。 |
restore | 提供使用mongorestore恢復數據所需的權限 | ||
全數據庫角色 |
在admin數據庫創建,適用於除mongod實例中的local和config之外的所有數據庫: |
readAnyDatabase | 提供與讀取相同的只讀權限,除了適用於群集中除本地和配置數據庫以外的所有權限。 該角色還提供了整個集群上的listDatabases操作。 |
readWriteAnyDatabase | 提供與readWrite相同的讀取和寫入權限,除了它適用於群集中除本地和配置數據庫以外的所有數據。 該角色還提供了整個集群上的listDatabases操作。 | ||
userAdminAnyDatabase | 提供與userAdmin相同的用戶管理操作訪問權限,除了適用於群集中除本地數據庫和配置數據庫外的所有數據。 | ||
dbAdminAnyDatabase | 提供與dbAdmin相同的數據庫管理操作訪問權限,除了它適用於除集群中的本地數據庫和配置數據庫以外的所有數據庫管理操作。 該角色還提供了整個集群上的listDatabases操作。 | ||
超級角色 (Superuser Roles) |
所有資源的完整權限 | root | 提供對readWriteAnyDatabase,dbAdminAnyDatabase,userAdminAnyDatabase,clusterAdmin,還原和備份相結合的操作和所有資源的訪問。 |
【新建用戶並賦予角色】
>use admin 進入admin庫
>db 查看當前所在庫
>db.createUser({'user':'boss', 'pwd':'boss', 'roles':[{'role':'userAdminAnyDatabase', 'db':'admin'}]}) 新增一個boss用戶,密碼也是boss,擁有對admin數據庫的管理員權限。此操作需在admin庫
>db.createUser({'user':'lison','pwd':'lison','roles':[{'role':'readWrite','db':lison'}]}) 新增一個lison用戶,密碼也是lison,擁有對lison數據庫的讀寫權限。此操作需在lison庫,不能在admin庫,否則權限失敗
注意:雖然你對用戶限制了權限,但是如果啟動mongo時沒有使用--auth身份驗證模式( ./mongod -f mongodb.conf --auth ),mongo就會忽略用戶權限,就相當於任何用戶都使用了admin管理員權限在操作。
>use lison 使用lison數據庫
>db.auth("lison","lison") 使用lison用戶登陸,密碼也是lison
end.