MongoDB身份验证应用程序-db.auth()



我有一个使用mongodb作为其DBS的node js程序,看起来像这样:

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的用户),然后用户需要身份验证?

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

为此点

但是,我想添加身份验证,以便有人首先必须针对Mongo Shell进行身份验证,然后能够查看Mongo DB数据。

根据这里的文档,我以下方式创建了用户名/密码身份验证。

在管理员db。

中创建用户
db.CreateUser({
  "user" : "sfk",
  "db" : "admin",
  "roles" : [
          {
                  "role" : "root",
                  "db" : "admin"
          }]
})

因此,身份验证适用于所有数据库。因此,显示DBS,在任何数据库中显示集合都可以工作。

连接外壳的方法是

使用参数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 -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。然后移动到管理DB。

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

现在用户已进行身份验证。

请在评论中发布如果需要任何额外的详细信息。

最新更新