日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Docker系列教程02-MongoDB默认开启鉴权

發(fā)布時間:2024/9/30 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker系列教程02-MongoDB默认开启鉴权 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

說明,我這里使用的是compose的版本的1.17.0格式是3,但是這和compose版本無關(guān),你只需要添加MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD到你的環(huán)境變量中即可。


#使用官方mongo:3.2的image,compose文件如下,其中當(dāng)你加入環(huán)境變量MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD(缺一不可)后mongodb自動開啟權(quán)限驗證,這在mongo官方鏡像文件的docker-entrypoint.sh腳本中可看到https://github.com/docker-library/mongo/blob/00a8519463e776e797c227681a595986d8f9dbe1/3.0/docker-entrypoint.sh

version: '3' services:mongo:image: mongo:3.2ports:- "27017:27017"volumes:- mongo-data:/data/dbnetworks:- backendenvironment:MONGO_INITDB_ROOT_USERNAME: rootMONGO_INITDB_ROOT_PASSWORD: root.123 volumes:mongo-data: networks:backend:


#創(chuàng)建服務(wù),我這里使用的是swarm集群
docker stack? deploy gionee -c=./docker-compose.yml


#進入容器內(nèi)部,mongo容器id自行查看
docker exec -it 7c10b03dcf3a /bin/bash


#執(zhí)行mongo命令
mongo


#首先使用命令show dbs查看是否開啟鑒權(quán),如果看到
2017-11-29T07:46:27.950+0000 E QUERY? ? [thread1] Error: listDatabases failed:{
? ? ? ? "ok" : 0,
? ? ? ? "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
? ? ? ? "code" : 13
}?
說明已經(jīng)開啟鑒權(quán),繼續(xù)往下走。如果沒有看到錯誤提示,說明mongo沒有默認開啟鑒權(quán),應(yīng)該檢查你的compose.yml的MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD格式是否正確,yml語法非常嚴格


#默認是進入test數(shù)據(jù)庫,需要切換到admin數(shù)據(jù)庫
use admin


#添加admin用戶
db.createUser( {user: "admin",pwd: "123456",roles: [ {"role" : "userAdminAnyDatabase","db" : "admin"},?{"role" : "readWriteAnyDatabase","db" : "admin"},?{"role" : "dbAdminAnyDatabase","db" : "admin"} ] });

#登錄admin用戶
db.auth("admin","123456")


#進入你想要添加用戶的數(shù)據(jù)庫,切記要切換你想要操作的數(shù)據(jù)庫,我這里是smartdb
use smartdb


#添加用戶,指定權(quán)限和數(shù)據(jù)庫readWrite表示讀寫權(quán)限
db.createUser({user: "smart",pwd: "123456",roles: [{ role: "readWrite", db: "smartdb" }]})

#驗證用戶否可用,如果返回1說明成功
db.auth("smart","123456")

總結(jié)

以上是生活随笔為你收集整理的Docker系列教程02-MongoDB默认开启鉴权的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。