Mongodb設置用戶權限(整理版)

本文是基於windows 下 MongoDB 4.0編寫,據瞭解MongoDB在3.0之後的版本中權限設置有變化。html

1. 建立超級用戶

安裝完以後,打開命令行,進入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數據庫中可用。超級帳號,超級權限

2. 建立全部數據庫管理用戶

db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

3. 建立單個數據庫用戶

總結

【參考資料】

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

相關文章
相關標籤/搜索