我刚接触docker,正在尝试在docker容器上设置我的第一个mongo db用户。我按照这个get mongo for docker tutorial开始,它提供了这个.yml文件:
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
然后我使用docker-compose up
创建了我的容器实例。完成此操作后,我ssh进入容器并尝试执行一个简单的show dbs
查询。每当我运行此命令或任何其他命令时,我都会收到以下授权消息:
> use admin
switched to admin
> show dbs
2018-06-09T17:20:48.644+0000 E QUERY [thread1] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command {
listDatabases: 1.0, $db: \"admin\" }",
"code" : 13,
"codeName" : "Unauthorized"
}
我读到,当您使用MONGO_INITDB_ROOT_USERNAME
和MONGO_INITDB_ROOT_PASSWORD
这样的环境变量时,您不必使用--auth,因为这涵盖了我,这样我就可以做像创建用户这样的事情了?https://stackoverflow.com/a/42973849/4819186
有没有人能给我指出正确的方向,告诉我如何正确地设置用户?谢谢。
发布于 2018-06-10 01:39:45
您需要在连接mongod (mongo服务器)时进行身份验证。你需要使用类似这样的东西:
mongo --host my_host -u user -p password --authenticationDatabase admin
这样,您基本上就可以针对admin数据库对您自己进行身份验证了,现在您应该拥有正确的权限
https://stackoverflow.com/questions/50776886
复制相似问题