如何在MongoDB中保护或验证我的数据库?
我使用命令行
创建了一个用户use mydb
db.createUser(
{
user: "root",
pwd: "password",
roles: [ { role: "userAdmin", db: "mydb" } ]
}
)
我的php,
// connect to mongodb
$m = new MongoClient();
var_dump($m);
// select a database
$db = $m->selectDB("mydb");
var_dump($db);
但为什么我仍然可以访问数据库没有身份验证?我错过了什么?
我在MongoDB 3上。
答案 0 :(得分:1)
这完全是预料之中,而不是一个错误。 我只是将文字添加到Blakes Seven上面的链接并发表评论:
这是来宾用户概念,不会影响安全性(请参阅Blakes链接:mongodb allows guest connection even when auth is enabled)。
这意味着:您的数据是安全的,访客用户只能访问元数据。这个概念在其他服务中是众所周知的(参见Jenkins,参见一些CMS系统等)。
答案 1 :(得分:0)
我必须再次运行mongo
{{1}}
然后auth按预期工作。