現在使用Role來管理用戶,有一些內置的Role,也可以自定義Role。
內置的Role請參看http://docs.mongodb.org/manual/reference/built-in-roles/,權限最高的是root,然後管理用戶的和管理數據庫的Role是分離的,cluster也有專門的Role。
原先給數據庫加用戶的命令已經不管用了:
1 2 | use [db_name] db.addUser( '[user]' , '[password]' ) |
現在MongoDB安裝好之後,先要用localhost登錄上去,創建一個admin,給予userAdminAnyDatabase的權限,可以管理所有數據庫的用戶:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | use admin db.createUser( { user: "admin" , pwd: "admin" , roles: [ { role: "userAdminAnyDatabase" , db: "admin" } ] } ) |
然後退出,再用admin登錄,創建其他用戶,給予dbOwner的權限,可以對某個數據庫進行所有操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | mongo [ip]/admin -u admin -p admin use [db_name] db.createUser( { user: "[user]" , pwd: "[password]" , roles: [ { role: "dbOwner" , db: "[db_name]" } ] } ) |
然後再用新建的用戶登錄,就可以操作數據庫了。