【问题标题】:Mongodb authentication application - db.auth()Mongodb 身份验证应用程序 - db.auth()
【发布时间】:2016-12-08 13:10:33
【问题描述】:

我有一个node js 程序,它使用mongodb 作为它的数据库,看起来像这样:

show dbs
  test
  eas
use eas
show collections
  nodeurls
  nodes
  users

在这个阶段,每个人都可以访问 mongo shell 并查看所有集合和其中的数据。但是,我想添加身份验证,以便有人首先必须对 mongo shell 进行身份验证,然后才能查看 mongo db 数据。

我发现了这个:https://docs.mongodb.com/manual/core/authentication/

并尝试使用db.auth() 方法,但我不明白这是如何完全工作的。

我假设我首先必须创建一个用户(我只想要一个用户用于 db mongo shell),然后用户需要进行身份验证?

对此的任何帮助将不胜感激!

【问题讨论】:

    标签: node.js mongodb authentication


    【解决方案1】:

    对于这一点

    但是,我想添加身份验证,以便有人首先必须对 mongo shell 进行身份验证,然后才能查看 mongo db 数据。

    根据文档here,我通过以下方式创建了用户名/密码验证。

    在 admin db 中以这种方式创建用户。

    db.CreateUser({
      "user" : "sfk",
      "db" : "admin",
      "roles" : [
              {
                      "role" : "root",
                      "db" : "admin"
              }]
    })
    

    因此,身份验证适用于所有数据库。 所以 show dbs, show collections 在任何数据库中都可以工作。

    shell的连接方式是,

    使用参数auth启动mongod

    C:\MongoDB\Server\3.2\bin\mongod.exe --auth --port 27017

    然后用身份验证打开 mongo shell

    C:\MongoDB\Server\3.2\bin\mongo.exe --port 27017 -u "sfk" -p "sfk" --authenticationDatabase "admin"

    其中 u - 用户名,p - 密码

    现在我们可以在任何数据库上发出任何命令。

    我们还可以对特定数据库的用户进行身份验证,如文档中所示。

    db.createUser(
      {
        user: "reportsUser",
        pwd: "12345678",
        roles: [
           { role: "read", db: "reporting" },
           { role: "read", db: "products" },
           { role: "read", db: "sales" },
           { role: "readWrite", db: "accounts" }
        ]
      }
    )
    

    使用 db.auth

    无需身份验证即可启动 mongo shell。然后转到管理数据库。

    use admin
    db.auth("username", "psw")
    

    现在用户已通过身份验证。

    如果需要任何额外的细节,请在 cmets 中发布。

    【讨论】:

    • 我已经应用了上述内容,并且有一个节点 js 程序,其中我的 dbs url 存储在配置文件中:module.exports = {'url':'mongodb://testuser:testing@localhost /mydbs' };这可行,但是有没有办法散列这个密码?
    • 如果这回答了问题,请考虑接受回答,如果你觉得
    • use admin 是他们懒得在官方文档上告诉你的秘密步骤......谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 2012-11-23
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 2011-06-27
    相关资源
    最近更新 更多