mongodb 3.0 訪問控制改了很多,需要你老老實實的去看文件去驗證,谷歌百度出來的多半就是錯誤的。 還需要注意這個引數authenticationmechanisms。
為了兼用2.6版本,我直接指定下面的引數:
setparameter:
authenticationmechanisms: mongodb-cr下面看看如何建立訪問控制許可權
不使用 —auth 引數,啟動 mongodb
mongodb-linux-i686-3.0.0/bin/mongod -f mongodb-linux-i686-3.0.0/mongodb.conf此時你 show dbs 會看到只有乙個local資料庫,那個所謂的admin是不存在的。
mongodb 沒有超級無敵使用者root,只有能管理使用者的使用者 useradminanydatabase。
新增管理使用者use admin
db.createuser(
]})roles 中的 db 引數是必須的,不然會報錯:error: couldn』t add user: missing expected field 「db」。另外,有很多文章記錄的是使用 db.adduser(…) 方法,這個方法是舊版的,3.0中已經不存在,詳見:
切換到admin下,檢視剛才建立的使用者:
show users
或db.system.users.find()
}, "roles" : [ ] }怎麼關閉 mongodb?千萬不要 kill -9 pid,可以 kill -2 pid 或 db.shutdownserver()
下面使用 —auth 參 數,重新啟動 mongodb:
mongodb-linux-i686-3.0.0/bin/mongod --auth -f mongodb-linux-i686-3.0.0/mongodb.conf
mongodb-linux-i686-3.0.0/bin/mongo
use admin
db.auth("buru","12345678") #認證,返回1表示成功
或mongodb-linux-i686-3.0.0/bin/mongo -u buru -p 12345678 --authenticationdatabase admin此時 show collections 報錯
2015-03-17t10:15:56.011+0800 e query error: listcollections failed: ",
"code" : 13
} at error ()
at db._getcollectioninfoscommand (src/mongo/shell/db.js:643:15)
at db.getcollectioninfos (src/mongo/shell/db.js:655:20)
at db.getcollectionnames (src/mongo/shell/db.js:666:17)
at shellhelper.show (src/mongo/shell/utils.js:625:12)
at shellhelper (src/mongo/shell/utils.js:524:36)
at (shellhelp2):1:1 at src/mongo/shell/db.js:643因為,使用者buru只有使用者管理的許可權。
下面建立使用者,使用者都跟著庫走,建立的使用者都是
use tianhe
db.createuser(
,
]})檢視剛剛建立的使用者。
show users
,
]}檢視整個mongodb全部的使用者:
use admin
db.system.users.find()
}, "roles" : [ ] }
}, "roles" : [ , ] }建立完畢,驗證一下:
use buru
show collections
2015-03-17t10:30:06.461+0800 e query error: listcollections failed: ",
"code" : 13
} at error ()
at db._getcollectioninfoscommand (src/mongo/shell/db.js:643:15)
at db.getcollectioninfos (src/mongo/shell/db.js:655:20)
at db.getcollectionnames (src/mongo/shell/db.js:666:17)
at shellhelper.show (src/mongo/shell/utils.js:625:12)
at shellhelper (src/mongo/shell/utils.js:524:36)
at (shellhelp2):1:1 at src/mongo/shell/db.js:643顯然沒許可權,先auth:
db.auth("bao","12345678")
show collections
news
system.indexes
wahaha
mongoDB 3 0 安全許可權訪問控制
首先,不使用 auth 引數,啟動 mongodb mongodb linux i686 3.0.0 bin mongod f mongodb linux i686 3.0.0 mongodb.conf 此時你 show dbs 會看到只有乙個local資料庫,那個所謂的admin是不存在的。mon...
mongoDB 3 0 安全許可權訪問控制
首先,不使用 auth 引數,啟動 mongodb mongodb linux i686 3.0.0 bin mongod f mongodb linux i686 3.0.0 mongodb.conf 此時你 show dbs 會看到只有乙個local資料庫,那個所謂的admin是不存在的。mon...
MongoDB 3 0 安全許可權訪問控制
1 啟動沒有訪問控制的mongodb服務 sudo service mongod start 2 連線到例項 mongo port 27017 指定額外的命令列選項來連線mongo shell到部署mongodb伺服器,如 host 3 建立的使用者管理員 use admin db.createus...