Mongo 使用者建立及許可權管理
Mongo版本3.0之前使用的是db.addUser(),但3.0之後使用的是db.createUser()
內建的角色: 資料庫使用者角色:read、readWrite; 資料庫管理角色:dbAdmin、dbOwner、userAdmin; 叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 備份恢復角色:backup、restore; 所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 超級使用者角色:root // 這裡還有幾個角色間接或直接提供了系統超級使用者的訪問(dbOwner 、userAdmin、userAdminAnyDatabase) 內部角色:__system
角色說明: Read:允許使用者讀取指定資料庫 readWrite:允許使用者讀寫指定資料庫 dbAdmin:允許使用者在指定資料庫中執行管理函式,如索引建立、刪除,檢視統計或訪問system.profile userAdmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和管理使用者 clusterAdmin:只在admin資料庫中可用,賦予使用者所有分片和複製集相關函式的管理許可權。 readAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權 readWriteAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫許可權 userAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的userAdmin許可權 dbAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin許可權。 root:只在admin資料庫中可用。超級賬號,超級許可權
# 建立管理使用者 > db.createUser({user: "admin",pwd: "admin",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
# 建立只讀使用者 > db.createUser({user:"a",pwd:"a",roles:[{role:"read",db:"test"}]})
# 建立讀寫使用者 > db.createUser({user:"b",pwd:"b",roles:[{role:"readWrite",db:"test"}]})
# 檢視使用者及許可權 > show users > db.system.users.find()
開啟許可權驗證: [[email protected] ~]# echo "auth = true" >> /root/mongodb/bin/mongodb.conf