1. 權限詳解數據庫
內建角色:
數據庫用戶角色: read、readWrite;
數據庫管理角色: dbAdmin、dbOwner、userAdmin;
集羣管理角色: clusterAdmin、clusterManager、clusterMonitor、hostManager;
備份恢復角色: backup、restore;
全部數據庫角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超級用戶角色: root; 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
內部角色: __system;
角色說明:
Read: 容許用戶讀取指定數據庫
readWrite: 容許用戶讀寫指定數據庫
dbAdmin: 容許用戶在指定數據庫中執行管理函數,如索引建立、刪除,查看統計或訪問system.profile
userAdmin: 容許用戶向system.users集合寫入,能夠找指定數據庫裏建立、刪除和管理用戶
dbOwner: 容許在當前DB中執行任意操做
readAnyDatabase: 賦予用戶全部數據庫的讀權限,只在admin數據庫中可用
readWriteAnyDatabase: 賦予用戶全部數據庫的讀寫權限,只在admin數據庫中可用
userAdminAnyDatabase: 賦予用戶全部數據庫管理User的權限,只在admin數據庫中可用
dbAdminAnyDatabase: 賦予管理全部數據庫的權限,只在admin數據庫中可用
root: 超級帳號,超級權限,只在admin數據庫中可用。
集羣管理角色:
clusterAdmin: 賦予管理集羣的最高權限,只在admin數據庫中可用
clusterManager: 賦予管理和監控集羣的權限
clusterMonitor: 賦予監控集羣的權限,對監控工具具備readonly的權限
hostManager: 賦予管理Server
2.建立用戶函數
show dbs 查看數據庫
use dbname 進入數據庫
show users 查看當前數據庫用戶權限
db.createUser( { user:"usertest", pwd:"passtest", roles:[ {role:"clusterAdmin", db:"admin" }, {role:"readAnyDatabase",db:"admin" }, {role:"readWrite",db:"testDB" } ] } )
3. 修改密碼工具
方法1: db.changeUserPassword("usertest","changepass"); 方法2: db.updateUser("usertest",{pwd:"changepass1"});
4. 修改權限spa
db.updateUser("usertest",{roles:[ {role:"read",db:"testDB"} ]})
注:updateuser它是徹底替換以前的值,若是要新增或添加roles而不是代替它
則使用方法: db.grantRolesToUser() 和 db.revokeRolesFromUser()
5. 刪除用戶rest
db.dropUser('usertest')