【问题标题】:Docker - Creating First User with MongoDBDocker - 使用 MongoDB 创建第一个用户
【发布时间】:2018-06-09 17:34:20
【问题描述】:

我是 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_USERNAMEMONGO_INITDB_ROOT_PASSWORD 这样的环境变量时,你不必使用--auth,因为这涵盖了我,所以我可以做一些事情,比如创建用户? https://stackoverflow.com/a/42973849/4819186

有人能指出我如何正确设置用户的正确方向吗?谢谢。

【问题讨论】:

    标签: mongodb docker docker-compose yaml


    【解决方案1】:

    您需要在连接到 mongod(mongo 服务器)时进行身份验证。你需要使用类似的东西:

    mongo --host my_host -u user -p password --authenticationDatabase admin
    

    有了这个,你基本上是在对 admin 数据库进行身份验证,现在你应该拥有正确的权限

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 2019-10-28
      相关资源
      最近更新 更多