mongoDB 3 0 安全許可權訪問控制

2021-07-11 15:28:12 字數 2791 閱讀 4807

首先,不使用 

–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。

開啟 mongo shell:

mongodb-linux-i686-3.0.0/bin/mongo

新增管理使用者:

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

再次開啟 mongo shell:

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")

1show collections

news

system.indexes

wahaha

mongoDB 3 0 安全許可權訪問

mongodb 3.0 訪問控制改了很多,需要你老老實實的去看文件去驗證,谷歌出來的多半就是錯誤的。還需要注意這個引數authenticationmechanisms。為了兼用2.6版本,我直接指定下面的引數 setparameter authenticationmechanisms mongodb...

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