1. 創建一個超級用戶
use admin db.createUser( { user: "adminUserName", pwd: "userPassword", roles: [ { roles: "userAdminAnyDatabase", db: "admin" } ] } )
超級用戶的role有兩種,userAdmin或者userAdminAnyDatabase(比前一種多加了對所有數據庫的訪問)。
db是指定數據庫的名字,admin是管理數據庫。
2. 用新創建的用戶登錄
mongo --host xxx -u adminUserName -p userPassword --authenticationDatabase admin
3. 查看當前用戶的權限
db.runCommand( { usersInfo:"userName", showPrivileges:true } )
4. 創建一般用戶,也是用createUser
use db01 db.createUser( { user:"oneUser", pwd:"12345", roles:[ {role:"read",db:"db01"}, {role:"read",db:"db02"}, {role:"read",db:"db03"} ] } )
5. 創建一個不受訪問限制的超級用戶
use admin db.createUser( { user:"superuser", pwd:"pwd", roles:["root"] } )
6. 修改密碼
use admin db.changeUserPassword("username", "xxx")
7. 查看用戶信息
db.runCommand({usersInfo:"userName"})
8. 修改密碼和用戶信息
db.runCommand( { updateUser:"username", pwd:"xxx", customData:{title:"xxx"} } )
注:
1. 和用戶管理相關的操作基本都要在admin數據庫下運行,要先use admin;
2. 如果在某個單一的數據庫下,那只能對當前數據庫的權限進行操作;
3. db.addUser是老版本的操作,現在版本也還能繼續使用,創建出來的user是帶有root role的超級管理員。