詳情來自于官方:::https://docs.mongodb.com/master/reference/method/js-user-management/
MongoDB 3.0 安全權限通路控制,在添加使用者上面3.0版本和之前的版本有很大的差別,這裡就說明下3.0的添加使用者的方法。
環境、測試:
在安裝MongoDB之後,先關閉auth認證,進入檢視資料庫,隻有一個local庫,admin庫是不存在的:
root@zhoujinyi:/usr/local/mongo4# mongo --port=27020
MongoDB shell version: 3.0.4
connecting to: 127.0.0.1:27020/test
2015-06-29T09:31:08.673-0400 I CONTROL [initandlisten]
> show dbs;
local 0.078GB
現在需要建立一個帳号,該賬号需要有grant權限,即:賬号管理的授權權限。注意一點,帳号是跟着庫走的,是以在指定庫裡授權,必須也在指定庫裡驗證(auth)。
> use admin
switched to db admin
> db.createUser(
... {
... user: "dba",
... pwd: "dba",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
... }
... )
Successfully added user: {
"user" : "dba",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
上面加粗的就是執行的指令:
user:使用者名
pwd:密碼
roles:指定使用者的角色,可以用一個空數組給新使用者設定空角色;在roles字段,可以指定内置角色和使用者定義的角色。role裡的角色可以選:
Built-In Roles(内置角色):
1. 資料庫使用者角色:read、readWrite;
2. 資料庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢複角色:backup、restore;
5. 所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級使用者角色:root
// 這裡還有幾個角色間接或直接提供了系統超級使用者的通路(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system
具體角色:
Read:允許使用者讀取指定資料庫
readWrite:允許使用者讀寫指定資料庫
dbAdmin:允許使用者在指定資料庫中執行管理函數,如索引建立、删除,檢視統計或通路system.profile
userAdmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、删除和管理使用者
clusterAdmin:隻在admin資料庫中可用,賦予使用者所有分片和複制集相關函數的管理權限。
readAnyDatabase:隻在admin資料庫中可用,賦予使用者所有資料庫的讀權限
readWriteAnyDatabase:隻在admin資料庫中可用,賦予使用者所有資料庫的讀寫權限
userAdminAnyDatabase:隻在admin資料庫中可用,賦予使用者所有資料庫的userAdmin權限
dbAdminAnyDatabase:隻在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin權限。
root:隻在admin資料庫中可用。超級賬号,超級權限
mongodb 使用者登陸是以基于資料庫的 例子如下: https://docs.mongodb.com/master/reference/method/js-user-management/
db.createUser({user:"lixiaomeng",pwd:"123",roles:[{role:"root",db:"admin"}]})
db.createUser({user:"lxm",pwd:"111",roles:[{role:"dbAdminAnyDatabase",db:"admin"}]})
db.createUser({user:"lixiaomeng",pwd:"111",roles:[{role:"dbOwner",db:"lxm1"}]})
db.auth("lixiaomeng","isolxm123");
mongo --host 127.0.0.1 --authenticationDatabase admin -u lixiaomeng -p