MongoDB默認安裝完后,如果在配置文件中沒有加上auth = true,是沒有用戶權限認證的,這樣對於一個數據庫來說是相對不安全的,尤其是在外網的情況下。
接下來是配置權限的過程:
//切入到admin數據庫 use admin
//在admin數據庫中加入一個用戶 //用戶名:admin,密碼:123456,角色:userAdminAnyDatabase db.createUser({user: 'admin', pwd: '123456', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]})
上面這個用戶加在admin數據庫中,通過該用戶登錄到MongoDB,可以預覽其他庫,但是想要查看其他庫的集合,會報以下錯誤,原因是沒有給其他庫分配權限。
//查看EMPI_2庫的集合 use EMPI_2 show collections
//會報異常
Failed to refresh 'Collections'.
Error:
ListCollections failed: { ok: 0.0, errmsg: "not authorized on EMPI_2 to execute command { listCollections: 1, filter: {}, cursor: {} }", code: 13, codeName: "Unauthorized" }
//給其他庫分配權限 //給admin這個用戶授予了EMPI_2庫的讀寫權限 db.grantRolesToUser("admin",[{role:"readWrite",db:"EMPI_2"}])
好了,設置好權限配置,在配置文件開啟授權認證auth = true,重啟MongoDB服務,那么在下次登錄到庫時,就需要用戶名和密碼了。