如何在 docker-compose 上使用 nodejs 在 mongoDB 上设置身份验证?

Posted

技术标签:

【中文标题】如何在 docker-compose 上使用 nodejs 在 mongoDB 上设置身份验证?【英文标题】:How to setup authentication on mongoDB on docker-compose with nodejs? 【发布时间】:2021-12-12 05:49:07 【问题描述】:

我想在使用我的 nodejs 应用程序连接到 mongoDB 数据库时设置基本身份验证。

通过指定查看了 mongo image 的文档

environment:
    - MONGO_INITDB_ROOT_USERNAME=admin
    - MONGO_INITDB_ROOT_PASSWORD=pass

但这似乎不起作用,当我在 nodejs (mongoose) 中使用连接字符串时

mongodb://admin:pass@mongo:27017/myDatabase

我只想设置基本身份验证以防止任何此类勒索软件攻击:

*** MongoDB Ransomware

【问题讨论】:

【参考方案1】:

MONGO_INITDB_ROOT_USERNAMEMONGO_INITDB_ROOT_PASSWORD 用于设置超级用户帐户以管理整个数据库。 您可以使用此连接字符串以管理员权限连接 mongodb://<MONGO_INITDB_ROOT_USERNAME>:<MONGO_INITDB_ROOT_PASSWORD>@mongo:27017 并创建一个数据库myDatabase,之后您还必须创建用户 允许查询数据库的角色。

例如

> use myDatabase
> db.createUser(user: "user", pwd: "user", roles:["dbOwner"])

那你就可以用这个字符串连接了

mongodb://user:user@mongo:27017/myDatabase

【讨论】:

以上是关于如何在 docker-compose 上使用 nodejs 在 mongoDB 上设置身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 docker-compose 上使用 nodejs 在 mongoDB 上设置身份验证?

如何使用 Docker-compose 文件在 Azure WebApp 上部署 Grafana?

如何在 AWS CodeBuild 上运行 docker-compose?

在docker-compose上使用与django的browser-sync

如何修复docker在ubuntu上docker-compose后进入重启状态的问题?

如何让 docker-compose 始终从新图像重新创建容器?