mongodb 認證方式(version:3.0.4)

以前一直在本機上跑,前段時間把後臺架到雲服務器上了,在settings里加上了username和password,但願同步的時候修改一下settings就能在本地測試。
 
由於雲服務器端數據庫鏈接須要驗證,因而在本地也打算加上身份驗證,而mongodb默認是沒有驗證的。
 
在網上搜索了一下,方法都比較舊,主要是在本地的mongodb中新增一個user:
進入mongodb下的bin
mongodb $ cd bin

不開啓驗證的方式啓動mongodbmongodb

bin $ ./mongod -dbpath ../blog
輸入mongo命令,進入test數據庫
bin $ ./mongo
添加admin用戶
1 use admin
2 db.createUser({
3      user:'admin',
4      pwd:'admin',
5      roles:[{role:'userAdminAnyDatabase',db:'admin'}]
6 })
切換到個人數據庫(blog 爲個人數據庫名稱),在個人數據庫下建立用戶
1 use blog
2 db.createUser({
3      user:'testuser',
4      pwd:'test',
5      roles:[{role:'dbOwner',db:'blog'}]
6 })
重啓服務器,開啓驗證
bin $ ./mongod -dbpath ../blog --auth
使用Robomongo登錄,顯示Authentication Failed,查看服務器日誌:
2015-08-31T17:39:46.416+0800 I ACCESS   [conn46] Failed to authenticate testuser@blog with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document
 
查看文檔,發現是由於mongodb驗證方式改變,加入了 (SCRAM)SHA-1
在mongo裏將剛建立的用戶刪除
use blog
db.dropUser('testuser'
關閉驗證重啓數據庫
在mongo裏修改system.version文檔裏面的authSchema版本爲3(舊版本)
1 use admin
2 db.system.version.update({'_id':'authSchema'},{$set:{'currentVersion':3}})
3 db.system.version.find()
能夠看到:{ "_id" : "authSchema", "currentVersion" : 3 }
 
刪除以前建立的用戶,從新建立用戶(這一次使用驗證方式爲MONGODB-CR)
1 use blog
2 db.dropUser('testuser')
3 db.createUser({
4      user:'testuser',
5      pwd:'test',
6      roles:[{role:'dbOwner',db:'blog'}]
7 })

 

 這一次能夠用Robomongo成功登錄~數據庫

相關文章
相關標籤/搜索