Laravel + MongoDB: невозможно подтвердить подлинность - PullRequest
0 голосов
/ 16 января 2019

У меня есть mongodb с одним пользователем, определенным в admin, как показано ниже

{
    "_id" : "admin.realtebo",
    "user" : "realtebo",
    "db" : "admin",
    "roles" : [
            {
                    "role" : "root",
                    "db" : "admin"
            },
            {
                    "role" : "readWriteAnyDatabase",
                    "db" : "admin"
            }
    ],
}

При использовании этих учетных данных из инструмента оболочки linux mongo я могу успешно делать все, что захочу, над каждым дБ в моей установке mongo

Я ввел следующие (и они правильные) данные в мои .env

DB_CONNECTION=mongodb
DB_HOST=127.0.0.1
DB_PORT=27017
DB_DATABASE=dev_db
DB_USERNAME=realtebo
DB_PASSWORD=<mypasswor>

Laravel не может подключиться

MongoDB \ Driver \ Exception \ AuthenticationException (11)
Authentication failed.

Я уверен, что это не проблема Laravel или конфигурации, потому что одно и то же приложение может успешно подключиться к удаленному mongodb.

Извините за такой нубский вопрос, но ... как настроить пользователя в db администратора mongo, чтобы realtebo мог читать из dev_db? Должен ли я просто добавить пользователя в dev_db?

Заранее спасибо, я уверен, что это глупость.

1 Ответ

0 голосов
/ 16 января 2019

Если это jenssegers 'mongodb, вам нужно указать базу данных аутентификации в config \ database.php:

'mongodb' => [
    'driver'   => 'mongodb',
    'host'     => env('DB_HOST', 'localhost'),
    'port'     => env('DB_PORT', 27017),
    'database' => env('DB_DATABASE'),
    'username' => env('DB_USERNAME'),
    'password' => env('DB_PASSWORD'),
    'options'  => [
        'database' => 'admin' // <=== here
    ]
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...