Mongodb C # драйвер - не может использовать аутентификацию администратора для доступа к другим базам данных - PullRequest
2 голосов
/ 20 июля 2011

Когда вы входите в систему как пользователь-администратор (пользователь базы данных администратора) в консоли MongoDB, вы можете получить полный доступ к любой базе данных на том же сервере без необходимости входа в каждую из них.Но если я использую официальный драйвер C # и предоставляю строку подключения к базе данных администратора, то, когда я пытаюсь получить доступ к любой другой базе данных, я получаю ошибку аутентификации.Это происходит в MongoServerInstance.AcquireConnection (), где он пытается повторно аутентифицировать соединение и проверяет учетные данные базы данных администратора по отношению к другой базе данных, которая, конечно, дает сбой.

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

Что я могу сделать, чтобы заставить драйвер C # работать так же, как консоль в плане аутентификации?

1 Ответ

4 голосов
/ 20 июля 2011

После того, как я покопался в коде аутентификации драйвера MongoDB, я обнаружил, что вам нужно добавить '(admin)' после имени пользователя admin в строке подключения, чтобы сообщить драйверу, что на самом деле это логин администратора.После этого все работает как положено!

...