MongoError: не авторизован на SessionDB для выполнения команды {listIndexes: "сеансы", курсор: {}} - PullRequest
0 голосов
/ 17 мая 2018

Я включил аутентификацию в моей базе данных mongo и добавил пользователя следующим образом.

db.createUser({
  user: "myuser",
  pwd: "abc123",
  roles: [ "readWriteAnyDatabase" ]
});

Я использую этого пользователя для запуска сервера экспресс-узлов. База данных успешно подключается, но затем происходит сбой со следующим исключением.

Unhandled rejection MongoError: not authorized on SessionDB to execute command { listIndexes: "sessions", cursor: {} }
    at Function.MongoError.create (/Users/myuser/code/test_project/node_modules/mongodb-core/lib/error.js:31:11)
    at queryCallback (/Users/myuser/code/test_project/node_modules/mongodb-core/lib/cursor.js:212:36)
    at /Users/myuser/code/test_project/node_modules/mongodb-core/lib/connection/pool.js:469:18
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)

Unhandled rejection MongoError: not authorized on SessionDB to execute command { listIndexes: "sessions", cursor: {} }
    at Function.MongoError.create (/Users/myuser/code/test_project/node_modules/mongodb-core/lib/error.js:31:11)
    at queryCallback (/Users/myuser/code/test_project/node_modules/mongodb-core/lib/cursor.js:212:36)
    at /Users/myuser/code/test_project/node_modules/mongodb-core/lib/connection/pool.js:469:18
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)

Я прочитал документацию для mongodb, где написано, что индексы сохраняются в системной коллекции, но встроенная роль read должна позволять пользователю получать к ним доступ. Я попытался дать моим пользователям встроенные роли readAnyDatabase и read, я также попробовал много других способов заставить его работать, но это все еще дает то же исключение.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...