mongodb權限篇

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')
相關文章
相關標籤/搜索