mongodb使用用戶名密碼登錄

之前項目連接的Mongodb都是空口令的,即沒有用戶名和密碼就能直接連接上,然後突然接到一個需求,需要用戶名密碼登錄,空口令不安全,以下是我的修改方案以後遇到的問題:

將原來的mongo url爲:mongodb://xx.xx.xxx.xxx:xxxxx/dbName

改爲:mongodb://userName:[email protected]:xxxx/dbName

同時在mongo服務器中將dbName這個數據庫設置了用戶名(userName)和密碼(password)

但是在項目執行的時候報了

not authorized on test to execute command mongo這個錯,即及時給dbName分配了用戶名密碼但是還是沒有權限執行先關操作

然後就參考了下面一個博主的文章並且解決了這個問題:

http://www.voidcn.com/article/p-stetasvk-bhr.html

主要步驟是:

在mongo中,先切換到admin用戶,然後執行命令創建一個角色:

db.createRole({role:'sysadmin',roles:[],privileges:[{resource:{anyResource:true},actions:['anyAction']}]})

接着再切換到當前所需使用的dbName數據庫,執行命令新建一個用戶,使用這個角色,注意,這個角色的db是admin:

db.createUser({user:'abc', pwd:'123',roles:[{role: 'sysadmin',db:'admin'}]}) 

 

再次運行代碼,代碼報錯消失

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章