Использование mlab с Meteor и развертывание в Galaxy: Ошибка получения "не разрешено в" БД "выполнять команду" - PullRequest
0 голосов
/ 23 октября 2018

При использовании mlab с Meteor и развертывании в Galaxy я получаю ошибку "not authorized on <DB> to execute command".

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

{
    "_id": "db.username",
    "user": "username",
    "db": "password",
    "roles": [
        {
            "role": "dbOwner",
            "db": "db"
        }
    ]
}

URL-адрес моих настроек не изменился:

mongodb://username:password@ds115758.mlab.com:15758/db

Что я делаю не так?Это сводит меня с ума :(

Ошибка:

Exception in setInterval callback: MongoError: not authorized on db to execute command { delete: "meteor_oauth_pendingRequestTokens", ordered: true, $db: "db" }

1 Ответ

0 голосов
/ 23 октября 2018

Обратитесь по адресу support@mlab.com.Они очень полезны и помогли мне отладить и исправить мою проблему.

В случае, если это полезно, постоянные проблемы с аутентификацией были связаны с тем, что приложение Galaxy не закрывало и повторно открывало соединения после удаления пользователя базы данных.Ниже приведены некоторые сообщения журнала, показывающие это поведение:

2018-10-22T05:00:00.798-0700 I COMMAND  [conn616856] command db.dbname command: insert { insert: "dbname", ordered: true, $db: "db" } ninserted:1 keysInserted:1 numYields:0 reslen:229 locks:{ Global: { acquireCount: { r: 2, w: 2 } }, MMAPV1Journal: { acquireCount: { w: 2 }, acquireWaitCount: { w: 1 }, timeAcquiringMicros: { w: 46 } }, Database: { acquireCount: { w: 2 } }, Collection: { acquireCount: { W: 1 } }, Metadata: { acquireCount: { W: 1 } }, oplog: { acquireCount: { W: 1 } } } protocol:op_query 182ms

2018-10-22T23:15:34.155-0700 I ACCESS   [conn616856] Removed deleted user dbusername@db from session cache of user information.

2018-10-22T23:15:34.155-0700 I ACCESS   [conn616856] Unauthorized: not authorized on db to execute command { find: "meteor_accounts_loginServiceConfiguration", filter: {}, projection: { secret: 0 }, $db: "db" }

Со вчерашнего дня, когда пользователь был удален:

2018-10-22T05:00:00.798-0700 I COMMAND  [conn616856] command db.dbname command: insert { insert: "dbname", ordered: true, $db: "db" } ninserted:1 keysInserted:1 numYields:0 reslen:229 locks:{ Global: { acquireCount: { r: 2, w: 2 } }, MMAPV1Journal: { acquireCount: { w: 2 }, acquireWaitCount: { w: 1 }, timeAcquiringMicros: { w: 46 } }, Database: { acquireCount: { w: 2 } }, Collection: { acquireCount: { W: 1 } }, Metadata: { acquireCount: { W: 1 } }, oplog: { acquireCount: { W: 1 } } } protocol:op_query 182ms

2018-10-22T23:15:34.155-0700 I ACCESS   [conn616856] Removed deleted user dbusername@db from session cache of user information.

2018-10-22T23:15:34.155-0700 I ACCESS   [conn616856] Unauthorized: not authorized on db to execute command { find: "meteor_accounts_loginServiceConfiguration", filter: {}, projection: { secret: 0 }, $db: "db" }

С сегодняшнего дня;обратите внимание, что у неавторизованных сообщений одинаковый идентификатор потока (conn616856):

2018-10-23T09:24:54.778-0700 I ACCESS   [conn616856] Unauthorized: not authorized on db to execute command { delete: "meteor_oauth_pendingCredentials", ordered: true, $db: "db" }
2018-10-23T09:27:54.785-0700 I ACCESS   [conn616856] Unauthorized: not authorized on db to execute command { delete: "meteor_oauth_pendingCredentials", ordered: true, $db: "db" }
2018-10-23T09:30:54.794-0700 I ACCESS   [conn616856] Unauthorized: not authorized on db to execute command { delete: "meteor_oauth_pendingCredentials", ordered: true, $db: "db" }

Все существующие соединения потеряли свои разрешения и были удалены при удалении пользователя базы данных.Эти соединения либо должны пройти повторную аутентификацию, либо потребуется создать новые аутентифицированные соединения.

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

Denzil

...