docker容器内的Mongodb身份验证

时间:2018-12-10 17:00:51

标签: mongodb docker authentication server

这是我的情况。我有一个mongodb docker容器实例,我需要更改管理员密码。现在,我有使用主机和ip以及凭据连接到mongodb的凭据。我可以通过ssh访问服务器,并且需要更改管理员密码。但是如果我这样做,

mongo manager --port 27017 -u "admin" -p "--------"
--authenticationDatabase "manager"

给我一​​个验证错误。而且我无法运行任何管理命令,例如:db.auth('admin','password')

我的问题是,如果我怎么能在容器内停止mongo?

docker exec -it mongodb bash

任何其他解决方法都将起作用。目标是更改密码或创建新的管理员用户以控制用户和角色。

非常感谢您的帮助。请让我知道是否需要更多信息。

1 个答案:

答案 0 :(得分:1)

您确定您的authenticationDatabase是“经理”吗?

无论如何,您无需停止mongo进程即可与数据库进行交互,而可以使用mongo shell对用户进行必要的身份验证。

  1. 获得对运行中的mongo容器的访问权限:

    $ docker exec -it«container_name»bash

  2. 使用mongo shell进行身份验证:

    $ mongo -u管理员-p 123admin --authentication数据库管理员

  3. 通过身份验证后,运行shell脚本以切换到保存用户数据的数据库。

    $ use admin

  4. 运行changeUserPassword命令更改密码:

    $ db.changeUserPassword(“ admin”,“ admin123”)

就这样。