mongodb-4.4.10版本角色與用戶管理


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恢復數據所需的權限

全數據庫角色
(All-Database Roles)

在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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM