mongodb库是否进行auth校验是根据启动时是否开启auth为依据。如果一个库启动的时候没有开启auth,及时该库有用户名密码,也不需要鉴权;反之,开启了auth的库,无论做什么操作都需要鉴权。这里有一个相对矛盾的点,如果要想创建用户,先要以免鉴权的模式进行创建。然后再关闭库,重新以鉴权的模式启动。两个库可指向同一地址。
免auth启动 docker run --name mongo_noauth -v /data:/data/db -p 16906:27017 -d docker.io/mongo
auth启动 docker run --name mongo -v /data:/data/db -p 16906:27017 -d docker.io/mongo --auth
安装mongo的参数,最后那个参数指定cache为2G,就不会出现mongo导致内存耗尽。
docker run --privileged --name mongo -p 27000:27017 -v /data/mongo:/data/db -d docker.io/mongo:3.6 --auth --wiredTigerCacheSizeGB 2
进入免auth数据库,创建用户
image.png进入容器 docker exec -it mongo_noauth /bin/bash
进入库mongo
切换库user admin
创建用户db.createUser({user:'pdloan',pwd:'rootroot',roles:[{role:'readWrite',db:'pdloan'}]})
查看用户 db.system.users.find().pretty();
关闭noauth库,启动auth库
image.pngdocker stop mongo_noauth
docker start mongo
docker exec -it mongo /bin/bash
网友评论