如何在 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_USERNAME
和MONGO_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