本文是基於windows 下 MongoDB 4.0編寫,據瞭解MongoDB在3.0之後的版本中權限設置有變化。html
安裝完以後,打開命令行,進入mongodb安裝目錄,在bin目錄下執行 mongod 啓動, 該模式是不須要安全認證的模式,mongodb
啓動後,使用可視化工具如:Robo 3T 打開shell窗口shell
先建立一個有grant權限的用戶,如root權限的用戶:數據庫
user:用戶名windows
pwd:密碼數組
db:指定該用戶的數據庫,admin是用於權限控制的數據庫,若是沒有須要新建一個安全
roles:指定用戶的角色,能夠用一個空數組給新用戶設定空角色;在roles字段,能夠指定內置角色和用戶定義的角色。role裏的角色能夠選:函數
Built-In Roles(內置角色):
1. 數據庫用戶角色:read、readWrite;
2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 集羣管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復角色:backup、restore;
5. 全部數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級用戶角色:root
// 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 內部角色:__system工具
具體角色的功能: ui
Read:容許用戶讀取指定數據庫
readWrite:容許用戶讀寫指定數據庫
dbAdmin:容許用戶在指定數據庫中執行管理函數,如索引建立、刪除,查看統計或訪問system.profile
userAdmin:容許用戶向system.users集合寫入,能夠找指定數據庫裏建立、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶全部分片和複製集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級帳號,超級權限
db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
【參考資料】
https://blog.csdn.net/qq_32502511/article/details/80619277
https://blog.csdn.net/fofabu2/article/details/78983741
https://blog.csdn.net/u013466972/article/details/81288333
https://blog.csdn.net/xusheng__zhang/article/details/78472167
https://www.cnblogs.com/chenpingzhao/p/7913247.html