mongodb設置讀寫權限的方法:1、打開命令行;2、進入mongodb安裝目錄;3、在bin目錄下執行“mongod”啟動服務;4、使用可視化工具并打開shell窗口;5、使用“db.createUser()”方法創建一個用戶;6、在創建用戶時,db.createUser()方法內使用roles參數指的“readWrite”設置讀寫權限即可。
具體內容如下:
1. 創建超級用戶
安裝完之后,打開命令行,進入mongodb安裝目錄,在bin目錄下執行 mongod 啟動, 該模式是不需要安全認證的模式,
啟動后,使用可視化工具如:Robo 3T 打開shell窗口
先創建一個有grant權限的用戶,如root權限的用戶:
user:用戶名
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
具體角色的功能:
Read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫里創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和復制集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限
2. 創建所有數據庫管理用戶
db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
3. 創建單個數據庫用戶