MongoDB默認設置為無權限訪問限制注:研究成果基於Windows平台
在部署mongodb成功後,進入控制台: \ 輸入命令:mongod use admin,你會發現該DB下包含了一個system.user表,呵呵,沒錯,這個表就等同於MsSql中的用戶表,用來存放超級管理員的,那我們就往它裡面添加一個超級管理員試試看裡我添加一個超級管理員用戶,username為admin,password也為admin,即然我們添加了超級管理員,那咱們就來測試下,看看咱們再次連接MongoDB需不需要提示輸入用戶名、密碼,我們先退出來。
輸入命令:mongod use admin
輸入命令:show collections,查看該庫下所有的表,你會發現,MongoDB並沒有提示你輸入用戶名、密碼,那就奇怪了,這是怎麼回事呢?在文章最開始提到了,
MongoDB默認設置為無權限訪問限制,即然這樣,那我們就先把它設置成為需要權限訪問限制,咱們再看看效果,怎麼設置呢?
在注冊表中,找到MongoDB的節點,在它的ImgPath中,我們修改一下,加入 -auth,如下所示:mongod
復制代碼 代碼如下:
"D:\Program Files\mongodb\bin\mongod" -dbpath e:\work\data\mongodb\db -logpath e:\work\data\mongodb\log -auth -service
注:進入系統注冊表(WIN+R-->regedit),找到[HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services-->MongoDB]在右邊的健-值列表中打到 “ImagePath”
修改完成後再次進入控制台,發現需要密碼驗證了。
別忘了重啟當前服務
輸入用戶名和密碼就可以驗證了。
別急,還沒有完。
當退出窗口後,再次啟動進入窗口後,通過use mydatabase來切換另一個庫後,查看庫下面的表,發現又沒有權限了。但是,通過之前命令先進入admin庫,然後驗證用戶名和密碼後再進入mydatabase庫就沒有問題。這樣我們就可以進入mydatabase庫後在添加用戶 db.addUser(username,password);
這樣就可以通過用戶名和密碼來進入mydatabase庫了。