簡體   English   中英

如何在MongoDB上創建具有密碼的新用戶並從NodeJS應用程序連接

[英]How to create new User with password on MongoDB and connect from NodeJS application

我需要一些幫助來設置我的NodeJS應用程序以使用憑據連接MongoDB。

我很困惑在admin數據庫上創建用戶,或者在數據庫中我將​​存儲我的文檔,然后從我的應用程序連接到它。

所以,假設我在localhost端口27017上運行了這個MongoDB服務,我的數據庫名為myAmazingApp 我想在這個現在為空的數據庫上創建一個具有讀/寫權限的用戶,並設置用戶userApp和密碼passwordApp

我在Mongoose上使用Mongoose

我的問題包括我必須在MongoDB上創建此用戶/角色/的任何地方和方式。

順便說一句,現在這是我的連接字符串

mongodb://userApp:passwordApp@localhost:27017/myAmazingApp和我有連接mongoose.connect

它給我認證失敗

  1. 通過終端登錄mongo shell
user@ubuntu:~$ mongo

並切換到管理員DB

> use admin
  1. 創建具有“userAdminAnyDatabase”角色的用戶,該角色授予在任何現有數據庫上創建其他用戶的權限。
> db.createUser(
  {
    user: "adminUser",
    pwd: "adminPwd",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
  1. 斷開與mongo shell的連接
  2. 您需要在mongod配置文件中啟用身份驗證。 打開/etc/mongod.conf或/etc/mongodb.conf
security:
    authorization: "disabled"

改為

security:
    authorization: "enabled"
  1. 重啟mongodb服務
user@ubuntu:~$ sudo service mongodb restart

要么

user@ubuntu:~$ sudo service mongod restart
  1. 以用戶管理員身份進行連接和身份驗證
user@ubuntu:~$ mongo admin
> db.auth("adminUser", "adminPwd")
1
  1. 根據需要創建其他用戶
> use myAmazingApp
> db.createUser(
  {
    user: "userApp",
    pwd: "passwordApp",
    roles: [ { role: "readWrite", db: "myAmazingApp" } ]
  }
)
  1. 連接mongoose時,您可以在連接URI中或作為選項傳遞它
mongoose.connect('mongodb://userApp:passwordApp@localhost:27017/myAmazingApp');

要么

mongoose.connect('mongodb://localhost:27017/myAmazingApp', {useNewUrlParser: true, user: "userApp", pass: "user:passwordApp"});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM