網站首頁 編程語言 正文
首先下載鏡像文件
sudo docker pull mongo
無密碼驗證創建容器
docker run -itd --name mongo -p 27017:27017 mongo
這時創建的MongoDB是沒有用戶名與密碼的,比如使用python連接mongodb時只需要:
pymongo.MongoClient(host='localhost', port=27017)
需要密碼驗證創建容器
整個流程是:
- 創建需要驗證的容器
- 進入容器內部,進入數據庫命令行
- 創建root用戶與密碼
- 登錄root用戶
- 通過root用戶的權限創建其他用戶
步驟1:創建需要驗證的容器
修改創建容器的方法為:
sudo docker run -itd --name docker-mongo -p 27017:27017 mongo --auth
步驟2:進入容器內部,進入數據庫命令行
只需要使用--auth
即可創建需要驗證的容器,然后需要進入容器內部,創建更多用戶:
sudo docker exec -it docker-mongo /bin/bash
進入容器后,運行:
mongosh
這樣就進入了mongodb的命令界面。
步驟3:創建root用戶與密碼
創建超級用戶:
use admin db.createUser({ user: "root" , pwd: "root_pass", roles: ["root"]})
這樣就創建了root用戶與密碼:
- 用戶名:root
- 密碼:root_pass
- 權限:root
步驟4:登錄root用戶
db.auth("root","root_pass")
返回 { ok: 1 },證明root用戶創建成功
步驟5:通過root用戶的權限創建其他用戶
創建對所有數據庫有讀寫權限的用戶:
db.createUser({ user: "dbrw" , pwd: "dbrw_pass", roles: ["readWriteAnyDatabase"]})
這樣就創建了一個新用戶:
- 用戶名:dbrw
- 密碼:dbrw_pass
- 權限:readWriteAnyDatabase
同樣可以創建自定義的權限:
db.createUser({ user:"ccc_user", pwd:"ccc_123456", roles:[ {role:"readWrite",db:"new_db_1"}, {role:"readWrite",db:"new_db_2"}, 'readAnyDatabase' ] })
通過這種方式創建的用戶,可以得到:
- 用戶名:ccc_user
- 密碼:ccc_123456
- 權限:
- 讀寫權限:數據庫new_db_1
- 讀寫權限:數據庫new_db_2
- 只讀權限:除new_db_1、new_db_2外的其他數據庫
權限&名稱請參考
數據庫用戶角色
- read: 只讀數據權限
- readWrite:學些數據權限
數據庫管理角色
- dbAdmin: 在當前db中執行管理操作的權限
- dbOwner: 在當前db中執行任意操作
- userADmin: 在當前db中管理user的權限
備份和還原角色
- backup
- restore
跨庫角色
- readAnyDatabase: 在所有數據庫上都有讀取數據的權限
- readWriteAnyDatabase: 在所有數據庫上都有讀寫數據的權限
- userAdminAnyDatabase: 在所有數據庫上都有管理user的權限
- dbAdminAnyDatabase: 管理所有數據庫的權限
集群管理
- clusterAdmin: 管理機器的最高權限
- clusterManager: 管理和監控集群的權限
- clusterMonitor: 監控集群的權限
- hostManager: 管理Server
超級權限
- root: 超級用戶
總結
原文鏈接:https://blog.csdn.net/weixin_35757704/article/details/128505647
相關推薦
- 2022-09-30 Centos7?Shell編程之正則表達式、文本處理工具詳解_正則表達式
- 2022-08-06 C#后臺調用WebApi接口的實現方法_C#教程
- 2022-12-10 React實現控制減少useContext導致非必要的渲染詳解_React
- 2022-05-31 python應用之如何使用Python發送通知到微信_python
- 2022-11-07 react-native?實現漸變色背景過程_React
- 2023-11-17 python中numpy ndarray 按條件篩選數組,關聯篩選的例子——numpyarray對數
- 2022-06-14 C語言?分析逆序字符串與字符串的逆序輸出有什么區別_C 語言
- 2022-08-25 高級消息隊列協議AMQP簡介_其它綜合
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支