Как авторизоваться в MongoDB, используя MongoClient?

145
29 декабря 2019, 16:30

Решил защитить свою бд и подключить аутентификацию для удалённого доступа. Но не смог найти информацию об аутентификации через MongoClient, только если использовать mongoose, чего я не хочу. Ещё был вариант авторизация в url const url = 'mongodb://user:pass@localhost:27017/dbname'; но этот вариант не работает. MongoDB v.4.0.6

var db = null;
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/';
MongoClient.connect(url, {useNewUrlParser: true}, function(err, dbr) {
  if (err) throw err;
  db = dbr.db("my-db");
});
Answer 1

Нашёл решение проблемы. Так как я зарегистрировал пользователя через консоль, который управляет несколькими базами данных, то для подключения нужно указывать самую первую зарегистрированную базу данных, а потом уже подключаться к нужной базе данных. Очень долго ломал над этим голову, но интуиция не подвела :) Вот код:

var db = null;
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/';
MongoClient.connect(url, {
  useNewUrlParser: true,
  auth: {username: "admin", password: "pass"},
  authSource:'first_db'
}, function(err, dbr) {
  if (err) throw err;
  db = dbr.db('necessary_db');
});

И вот ещё один вариант, который мне показался неудобным и устаревшим:

var db = null;
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://user:pass@localhost:27017/?authSource=first_db';
MongoClient.connect(url, {
  useNewUrlParser: true,
}, function(err, dbr) {
  if (err) throw err;
  db = dbr.db('necessary_db');
});
READ ALSO
Не отправляется форма в telegram из JavaScript

Не отправляется форма в telegram из JavaScript

Хочу отправить форму в телеграм прямо из js файлаВо всем этом новичок

150
Как избежать двойного пролистывания в fullpage.js и ошибок в нем?

Как избежать двойного пролистывания в fullpage.js и ошибок в нем?

Подскажите, на сайте установлен fullpagejs для постраничного скролла

144
Как загрузить изображение в VK

Как загрузить изображение в VK

Есть ссылка на изображение, хочу получить его и загрузить в вк для отправкиТекущий код:

125
Не отправляются данные формы

Не отправляются данные формы

Не отправляются данные с формы, я так понял это из-за того что я в форме блоки сделал, можно как-то отправлять с вложенных блоков или нужно...

154