Docker之MongoDB容器中创建用户与授权操作
文章目录
- Docker之MongoDB容器中创建用户与授权操作
- [1. 拉取MongoDB镜像](#1. 拉取MongoDB镜像)
- [2. 运行容器](#2. 运行容器)
- [3. 创建用户与授权](#3. 创建用户与授权)
-
- [1. 创建管理员用户](#1. 创建管理员用户)
- [2. 管理员用户创建其他用户](#2. 管理员用户创建其他用户)
- [2. 修改用户](#2. 修改用户)
- [4. 删除用户](#4. 删除用户)
其他配置参照docker Hub官网:Mongo - Official Image | Docker Hub
1. 拉取MongoDB镜像
shell
docker pull mongo:4.2.23
2. 运行容器
- 运行一个名称为
auth_mongo
镜像,且挂载容器数据券为F:/dockeData/mongodb4223/data/db:/data/db
- 通过
--auth
来开启授权功能
shell
# --auth表示连接mongodb时需要授权
docker run -it -d --name auth_mongo -v F:/dockeData/mongodb4223/data/db:/data/db -p 27017:27017 mongo:4.2.23 --auth
3. 创建用户与授权
进入容器内部创建用户
1. 创建管理员用户
shell
#进入容器
docker exec -it auth_mongo mongo admin
# 添加管理员用户
db.createUser({ user:'admin',pwd:'admin@123',roles:[ { role:'root', db: 'admin'}]});
# 切换到admin数据库
use admin
# 登录认证
db.auth('admin', 'admin@123')
# 查看数据库
show dbs
2. 管理员用户创建其他用户
- 先登录管理员账户;
- 切换到某个数据库并创建其他用户
shell
# 1.先使用admin账户登录
use admin
db.auth('admin','admin@123')
# 2.切换到并创建my_db库
use my_db
# 在my_db数据库下创建test_user用户
db.createUser({user:'test_user',pwd:'test_user',roles:['readWrite']})
#通过账号密码登录并添加users集合数据
db.auth("test_user","test_user")
# 插入测试数据
db.users.insert( { name:"jinshengyuan", age:22} )
2. 修改用户
如修改test_user用户的角色
shell
db.updateUser({user:'test_user',pwd:'test_user',roles:[{role:'userAdminAnyDatabase',db:'admin'}]})
4. 删除用户
shell
# 删除用户
db.dropUser('test_user')
)