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")