首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Docker -使用MongoDB创建第一个用户

Docker -使用MongoDB创建第一个用户
EN

Stack Overflow用户
提问于 2018-06-10 01:34:21
回答 1查看 1.1K关注 0票数 0

我刚接触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

有没有人能给我指出正确的方向,告诉我如何正确地设置用户?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 01:39:45

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

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

这样,您基本上就可以针对admin数据库对您自己进行身份验证了,现在您应该拥有正确的权限

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50776886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档