所以我正在尝试使用官方的mongo Docker 映像版本来设置 MongoDB 4.2。
我想要实现的是使用启用了身份验证的服务器,并且我想要一个具有自定义用户和密码的自定义数据库。
所以,我正在设置以下环境变量:
MONGO_INITDB_DATABASE: mydb
MONGO_INITDB_ROOT_USERNAME: jane
MONGO_INITDB_ROOT_PASSWORD: secret
在文档中它指出,如果您提供后两个环境变量,则会自动启用身份验证。
但是,当我尝试mydb使用凭据访问数据库jane时secret,我得到的只是一个错误:
Supported SASL mechanisms requested for unknown user 'jane@mydb'
SASL SCRAM-SHA-1 authentication failed for jane on mydb from client 172.17.0.1:54702 ; UserNotFound: Could not find user "jane" for db "mydb"
这是为什么?我错过了什么?
我的猜测是创建的用户只能访问admin数据库,我需要授予用户访问jane数据库的权限mydb。我尝试使用以下命令来做到这一点:
mongo admin -u jane -p secret --eval "db.grantRolesToUser('jane', [{role: 'dbOwner', db: 'mydb'}])"
但这也不起作用。我错过了什么?