我正在docker中构建一个mongodb镜像,并在其中一个启动shell脚本中创建了两个mongodb用户,如下所示。
mongod --dbpath /data/db &
RET=1
while [[ RET -ne 0 ]]; do
echo "=> Waiting for confirmation of MongoDB service startup"
sleep 5
mongo admin --eval "help" >/dev/null 2>&1
RET=$?
done
ADMINUSER=rootUser
ADMINPASS=changeMe
DBUSER=opal
DBPASSWORD=opal
mongo admin --eval "db.createUser({user: '$ADMINUSER', pwd: '$ADMINPASS', roles:[{role:'root',db:'admin'}]});"
mongo opaldb --eval "db.createUser({user: '$DBUSER', pwd: '$DBPASSWORD', roles:[{role:'dbOwner',db:'opaldb'}]});"
mongod --shutdown
打开mongodb容器后,我只能看到管理员用户,而不能看到其他用户。
> use admin
switched to db admin
> show users
{
"_id" : "admin.rootUser",
"user" : "rootUser",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
> use opald
switched to db opald
> show users
>
我错过了一些愚蠢的东西吗?
答案 0 :(得分:0)
创建第一个用户后,您需要进行身份验证,然后创建第二个用户
mongo admin --eval "db.auth('${admin_user}','${admin_password}');db.createUser({user: '$DBUSER', pwd: '$DBPASSWORD', roles:[{role:'dbOwner',db:'opaldb'}]});"