記錄本身,即已是反抗
首先下載mongo鏡像,簡單命令不做過多敘述,前面文章有介紹怎么基本使用docker。
之后編寫docker-compose.yml文件,運行 docker-compose up -d生成容器并后臺啟動。
root創(chuàng)建
// docker-compose.yml
// command:啟動是的命令行參數(shù),添加認證auth
version: '2'
services:
mongodb:
image: mongo
ports:
- 27017:27017
volumes:
- "./data/configdb:/data/configdb"
- "./data/db:/data/db"
command: mongod --auth
environment:
- MONGO_INITDB_ROOT_USERNAME=root #初始化管理員用戶名和密碼
- MONGO_INITDB_ROOT_PASSWORD=123456
tty: true
帶上mongo-express,web管理頁面。
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: root
# command: ["--bind_ip_all"]
ports:
- "27017:27017"
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: root
運行docker ps查看容器是否運行。

image.png
進入docker容器并進入mongo命令行。
docker exec -it 4 /bin/bash
mongo
此時show dbs無法執(zhí)行,需要認證。
切換到admin并創(chuàng)建root用戶:
use admin
db.createUser({ user: 'root', pwd: 'root', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })

image.png
如上,可以看到root用戶創(chuàng)建成功。exit退出mongo命令行,帶驗證的mongodb已經(jīng)創(chuàng)建成功。
普通用戶創(chuàng)建
接下來創(chuàng)建普通用戶,并演示驗證。
再次執(zhí)行mongo 進入mongodb命令行。

image.png
可以看到root用戶驗證成功,并且可以查看數(shù)據(jù)庫。
下面創(chuàng)建普通用戶,和創(chuàng)建root用戶基本一致,只是角色不同 。
//擁有對數(shù)據(jù)庫app的讀寫權(quán)限。
use app
db.createUser(
{
user: "swen",
pwd: "swen",
roles: [ { role: "readWrite", db: "app" }
]
}
)

image.png
創(chuàng)建成功并exit退出,swen用戶可以對(只能對)app進行操作。
下面做基本演示。
基本驗證:

image.png
演示往 test集合插入簡單數(shù)據(jù),并查看數(shù)據(jù)庫狀態(tài)。

image.png
介紹到此完畢。
參考資料:
MongoDB 用戶名密碼登錄
MongoDB 常用基本命令