1. 程式人生 > >Mongo 使用者建立及許可權管理

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