Mongodb认证shell /控制台

时间:2016-12-02 10:11:13

标签: node.js mongodb shell

我有一个Node JS程序,它使用Mongo DB作为我的dbs。现在......每个人都可以毫无问题地访问mongo shell。

这是它的意思吗?我想让mongo shell远离其他任何人,即你必须在使用shell之前进行身份验证。原因是我不希望人们删除数据库中的表,并通过控制台插入/修改文档。

有办法做到这一点吗?我查看了https://docs.mongodb.com/manual/security/但是我不知道如何将这个实现到我的Node Js程序(保密密码)。

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:2)

一些解决方案:

  • 将对数据库的访问权限仅限于所需的IP地址。如果您的应用程序和数据库位于同一台计算机上,那么只有127.0.0.1 +可能是您的PC,因此您可以在GUI中运行查询。

  • 使用强密码强制执行this link中的身份验证。 保密密码'在你的Node程序中,我理解为"不是硬编码",使它成为env变量并在运行时将其提供给节点,或者将其写入不存在于repo中的文件中(。 gitignore也有效。)

使用有效的用户/密码,以下是如何使用Node对mongodb进行身份验证的方法:

mongodb地址有7个组成部分:

    protocol:"mongodb://",
    host:"localhost",
    user: "user",
    password : "password",
    options: "?authMechanism=MONGODB-CR",
    port:"27017",
    db:"db_name"

所有这些都给出了一个字符串:

mongodb://user:password@localhost:27017/db_name?authMechanism=MONGODB-CR

这应该足以让Node使用本机Mongo驱动程序进行连接。

并在shell中进行身份验证:

  

使用db_name

     

db.auth("用户","密码")

或直接连接:

mongo -u "user" -p "password" --authenticationDatabase "db_name"