docker版mongo添加用户名密码

2019-12-17  本文已影响0人  不像狮子座

1、拉取镜像

保证机器连接外网

docker pull docker.io/mongo:3.5

2、run一个mongo容器

# --auth 为开启密码授权访问。
docker run -d --name b-mongo -p 27019:27017 -v /data/bmongo/db:/data/db --restart always   docker.io/mongo:3.5 --auth

3、进入mongo客户端,添加用户

# 进入mongo命令端:
docker exec -it b-mongo mongo

# 选择admin库,创建用户:
use admin

db.createUser({ 
    user: 'admin', 
    pwd: 'mongo_123', 
    roles: [ { role: "root", db: "admin" } ] });

# 这样就相当于创建了一个用户
# 上面创建的用户角色是超级账号,是超级用户
# role后面的参数可以参考下面:

read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

# 退出后用密码登录:
docker exec -it a-mongo mongo -u admin -p mongo_123 --authenticationDatabase admin

# 切换用户
db.auth("root","admin")
上一篇下一篇

猜你喜欢

热点阅读