Docker創(chuàng)建MongoDB容器并添加root密碼驗(yàn)證與更多用戶詳細(xì)步驟
首先下載鏡像文件
sudo docker pull mongo
無(wú)密碼驗(yàn)證創(chuàng)建容器
docker run -itd --name mongo -p 27017:27017 mongo
這時(shí)創(chuàng)建的MongoDB是沒(méi)有用戶名與密碼的,比如使用python連接mongodb時(shí)只需要:
pymongo.MongoClient(host='localhost', port=27017)
需要密碼驗(yàn)證創(chuàng)建容器
整個(gè)流程是:
- 創(chuàng)建需要驗(yàn)證的容器
- 進(jìn)入容器內(nèi)部,進(jìn)入數(shù)據(jù)庫(kù)命令行
- 創(chuàng)建root用戶與密碼
- 登錄root用戶
- 通過(guò)root用戶的權(quán)限創(chuàng)建其他用戶
步驟1:創(chuàng)建需要驗(yàn)證的容器
修改創(chuàng)建容器的方法為:
sudo docker run -itd --name docker-mongo -p 27017:27017 mongo --auth
步驟2:進(jìn)入容器內(nèi)部,進(jìn)入數(shù)據(jù)庫(kù)命令行
只需要使用--auth即可創(chuàng)建需要驗(yàn)證的容器,然后需要進(jìn)入容器內(nèi)部,創(chuàng)建更多用戶:
sudo docker exec -it docker-mongo /bin/bash
進(jìn)入容器后,運(yùn)行:
mongosh
這樣就進(jìn)入了mongodb的命令界面。
步驟3:創(chuàng)建root用戶與密碼
創(chuàng)建超級(jí)用戶:
use admin
db.createUser({ user: "root" , pwd: "root_pass", roles: ["root"]})
這樣就創(chuàng)建了root用戶與密碼:
- 用戶名:root
- 密碼:root_pass
- 權(quán)限:root
步驟4:登錄root用戶
db.auth("root","root_pass")
返回 { ok: 1 },證明root用戶創(chuàng)建成功
步驟5:通過(guò)root用戶的權(quán)限創(chuàng)建其他用戶
創(chuàng)建對(duì)所有數(shù)據(jù)庫(kù)有讀寫(xiě)權(quán)限的用戶:
db.createUser({ user: "dbrw" , pwd: "dbrw_pass", roles: ["readWriteAnyDatabase"]})
這樣就創(chuàng)建了一個(gè)新用戶:
- 用戶名:dbrw
- 密碼:dbrw_pass
- 權(quán)限:readWriteAnyDatabase
同樣可以創(chuàng)建自定義的權(quán)限:
db.createUser({
user:"ccc_user",
pwd:"ccc_123456",
roles:[
{role:"readWrite",db:"new_db_1"},
{role:"readWrite",db:"new_db_2"},
'readAnyDatabase'
]
})
通過(guò)這種方式創(chuàng)建的用戶,可以得到:
- 用戶名:ccc_user
- 密碼:ccc_123456
- 權(quán)限:
- 讀寫(xiě)權(quán)限:數(shù)據(jù)庫(kù)new_db_1
- 讀寫(xiě)權(quán)限:數(shù)據(jù)庫(kù)new_db_2
- 只讀權(quán)限:除new_db_1、new_db_2外的其他數(shù)據(jù)庫(kù)
權(quán)限&名稱請(qǐng)參考
數(shù)據(jù)庫(kù)用戶角色
- read: 只讀數(shù)據(jù)權(quán)限
- readWrite:學(xué)些數(shù)據(jù)權(quán)限
數(shù)據(jù)庫(kù)管理角色
- dbAdmin: 在當(dāng)前db中執(zhí)行管理操作的權(quán)限
- dbOwner: 在當(dāng)前db中執(zhí)行任意操作
- userADmin: 在當(dāng)前db中管理user的權(quán)限
備份和還原角色
- backup
- restore
跨庫(kù)角色
- readAnyDatabase: 在所有數(shù)據(jù)庫(kù)上都有讀取數(shù)據(jù)的權(quán)限
- readWriteAnyDatabase: 在所有數(shù)據(jù)庫(kù)上都有讀寫(xiě)數(shù)據(jù)的權(quán)限
- userAdminAnyDatabase: 在所有數(shù)據(jù)庫(kù)上都有管理user的權(quán)限
- dbAdminAnyDatabase: 管理所有數(shù)據(jù)庫(kù)的權(quán)限
集群管理
- clusterAdmin: 管理機(jī)器的最高權(quán)限
- clusterManager: 管理和監(jiān)控集群的權(quán)限
- clusterMonitor: 監(jiān)控集群的權(quán)限
- hostManager: 管理Server
超級(jí)權(quán)限
- root: 超級(jí)用戶
總結(jié)
到此這篇關(guān)于Docker創(chuàng)建MongoDB容器并添加root密碼驗(yàn)證與更多用戶的文章就介紹到這了,更多相關(guān)Docker創(chuàng)建MongoDB容器添加密碼驗(yàn)證內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker mysql修改root賬號(hào)密碼并賦予權(quán)限
- docker啟動(dòng)mysql及-e MYSQL_ROOT_PASSWORD=my-secret-pw問(wèn)題解決
- 使用非root用戶安裝及啟動(dòng)docker的問(wèn)題(rootless模式運(yùn)行)
- docker容器非root用戶提權(quán)的問(wèn)題解決
- docker 免root權(quán)限登陸的解決方案
- 解決docker容器中出現(xiàn)Access denied for user 'root'@'172.17.0.2'(using password: YES)問(wèn)題
相關(guān)文章
關(guān)于構(gòu)建aarch64環(huán)境Mysql8.0的Docker鏡像問(wèn)題
這篇文章主要介紹了構(gòu)建aarch64環(huán)境Mysql8.0的Docker鏡像,需要的朋友可以參考下2022-04-04
Docker 通過(guò)端口來(lái)連接一個(gè)容器的實(shí)現(xiàn)
這篇文章主要介紹了Docker 通過(guò)端口來(lái)連接一個(gè)容器的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
docker 使用mysqldump命令備份導(dǎo)出項(xiàng)目中的mysql數(shù)據(jù)
這篇文章主要介紹了docker 使用mysqldump命令備份導(dǎo)出項(xiàng)目中的mysql數(shù)據(jù)本文通過(guò)命令給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
docker容器因報(bào)錯(cuò)無(wú)法啟動(dòng)問(wèn)題的檢查及修復(fù)容器錯(cuò)誤并重啟
隨著容器技術(shù)的發(fā)展,現(xiàn)在很多的應(yīng)用程序系統(tǒng)都會(huì)選擇使用docker容器進(jìn)行部署,下面這篇文章主要給大家介紹了關(guān)于docker容器因報(bào)錯(cuò)無(wú)法啟動(dòng)問(wèn)題的檢查及修復(fù)容器錯(cuò)誤并重啟的相關(guān)資料,需要的朋友可以參考下2023-03-03
一文詳解如何配置docker通過(guò)代理服務(wù)器拉取鏡像
這篇文章主要給大家介紹了關(guān)于如何配置docker通過(guò)代理服務(wù)器拉取鏡像的相關(guān)資料,如果在拉取Docker鏡像時(shí)遇到速度較慢的問(wèn)題,可以嘗試以下幾種方法解決,需要的朋友可以參考下2024-07-07
使用docker compose搭建consul集群環(huán)境的例子
consul是HashCorp公司推出使用go語(yǔ)言編寫(xiě)的開(kāi)源工具,用于實(shí)現(xiàn)分布式系統(tǒng)的服務(wù)發(fā)現(xiàn)與配置,今天給大家普及使用docker compose搭建consul集群環(huán)境的方法及consul基本知識(shí)講解,感興趣的朋友一起看看吧2021-06-06
Docker網(wǎng)段和內(nèi)網(wǎng)網(wǎng)段ip沖突導(dǎo)致無(wú)法訪問(wèn)網(wǎng)絡(luò)的兩種解決方法
本文主要介紹了Docker網(wǎng)段和內(nèi)網(wǎng)網(wǎng)段沖突導(dǎo)致無(wú)法訪問(wèn)網(wǎng)絡(luò)的兩種解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06

