【问题标题】:mongodb - Prevent access to mongodb without authenticationmongodb - 防止未经身份验证访问 mongodb
【发布时间】:2016-07-02 02:37:52
【问题描述】:
我是 MEAN STACK 网络应用程序的新手。而且我无法在 mongodb 中进行正确的身份验证。
我想阻止没有用户名和密码的 mongodb 数据库访问。
依赖
"mongodb" => "版本": "2.4.9",
"OS" => "Ubuntu 14.04 lts 32bit",
【问题讨论】:
标签:
node.js
mongodb
mongoose
【解决方案1】:
简单明了:你不能可靠。这有点像说
我希望我的房子安全,但我不想使用锁和钥匙。
为了保持在示例中,您可以雇用门卫(防火墙),但他无法可靠地告诉您除了整形手术看起来像您的人(IP 欺骗、劫持电脑,...)。
这甚至不包括授权。
想象一下所有公寓都没有门锁的公寓楼。现在,我们的门卫让您和居住在该建筑物中的所有其他人进入。但是,由于门卫被绑定到它的位置,任何可以合法进入建筑物的人都可以进入任何公寓并偷东西。或者在你的公寓里放法医证据,诬陷你没有犯下的罪行,然后直接告诉警察。
我想你明白了:如果你的 MongoDB 实例是可公开访问的,请添加身份验证和授权。即使您认为它是不可公开访问的,最好还是确定一下。
【解决方案2】:
身份验证在 mongo 数据库中完成。在 mongo 控制台中尝试此操作以在数据库中创建用户
use data_base_name
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
现在像这样使用数据库 url
mongodb://user:password@host:port/database_name
连接数据库