一、MongoDB用戶認證機制簡介 為了認證客戶端,你必須要添加一個對應的用戶到MongoDB。基本的步驟分為以下幾步: 用戶管理介面:db.createUser()方法可以創建一個用戶,添加完成後可以分配角色給用戶,第一個用戶必須是管理員,用來管理其他用戶。你也可以更新存在的用戶,必須修改密碼和權 ...
一、MongoDB用戶認證機制簡介
為了認證客戶端,你必須要添加一個對應的用戶到MongoDB。基本的步驟分為以下幾步:
- 用戶管理介面:db.createUser()方法可以創建一個用戶,添加完成後可以分配角色給用戶,第一個用戶必須是管理員,用來管理其他用戶。你也可以更新存在的用戶,必須修改密碼和許可權。
- 認證資料庫:當添加一個用戶後,你在某個指定的資料庫中添加該用戶,那麼這個資料庫對於該用戶就是個認證資料庫。一個用戶可以有許可權訪問多個資料庫,通過分配角色許可權來做到。
- 認證用戶:為了認證用戶,可以通過db.author()方法。
二、MongoDB用戶認證示例
- 在admin資料庫中,創建一個超級用戶,用於管理其他的的用戶。
use admin db.createUser({"user":"myadmin","pwd":"password","roles":["root"]})
- 重新登錄資料庫,執行:show dbs,發現依然可以訪問。我們需要開啟資料庫的認證機制,在配置文件中設置以下參數:
auth=true
- 重啟MongoDB,並且重新登錄
- 執行:show dbs,出現錯誤
- 執行認證用戶,執行show users查看用戶信息
use admin db.auth("myadmin","password") show users
- 執行:show dbs,就能正常執行了。
- 在mydemo資料庫中,創建一個新的用戶
use mydemo db.createUser({"user":"user1","pwd":"password","roles":["read"]}) 註意:該用戶只有讀的角色
- 執行下麵的操作,進行測試。
切換用戶: db.auth("user1","password") 查詢collection:db.emp.findOne() --> 可以正常操作 插入新文檔:db.testtable2.insert({"name","Tom"}) ---> 出錯
- 修改用戶的密碼
db.updateUser("user1",{"pwd":"abcd"})
- 查看用戶:show users