Назад | Перейти на главную страницу

добавление разрыва аутентификации mongodb при подключении через nodejs

Мне нужен был внешний доступ к моей базе данных mongodb, поэтому я удалил bind_ip из файла mongod.conf и включил аутентификацию. Затем я добавил пользователя root, который может получить доступ ко всему, и попытался подключиться к базе данных с помощью robomongo - работает отлично. Затем я добавил еще одного пользователя в свое приложение nodejs. Я пробовал с ролями dbAdmin, readWrite, read .... и независимо от того, что я установил, он никогда не завершит подключение к БД в nodejs.

Пользователь выглядит так:

db.getUser('node');
{
        "_id" : "admin.node",
        "user" : "node",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "read",
                        "db" : "mydb"
                },
                {
                        "role" : "userAdmin",
                        "db" : "mydb"
                },
                {
                        "role" : "dbAdmin",
                        "db" : "mydb"
                },
                {
                        "role" : "readWrite",
                        "db" : "mydb"
                },
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "mydb"
                }
        ]
}

Кажется, я нигде не могу найти подходящие роли.

ОБНОВЛЕНИЕ: я хотел лучше объяснить, что происходит, когда он пытается подключиться. Он прекрасно авторизует пользователя, потому что, если я изменю имя пользователя / передаю что-то не так, это дает ошибку аутентификации. Я также попытался добавить прослушиватель событий, когда соединение «подключено», а затем запустить остальную часть скрипта ... и это событие никогда не запускается. Просто вроде зависает.

ОБНОВЛЕНИЕ: вот код, который я пытаюсь использовать для подключения к mongodb через mongoose:

mongoose.connect('mongodb://username:password@localhost:27017/database', { auth: { authdb: 'admin' } });