MongoDB завершает соединение после успешной аутентификации из Robo 3T

#mongodb #robo3t

#mongodb #robo3t

Вопрос:

Версия MongoDB: v4.2.7

Версия Robo 3T: v1.3.1

В администраторе БД есть два пользователя, один со встроенной ролью «userAdminAnyDatabase», а другой с «readAnyDatabase». Я могу использовать пользователя с ролью «userAdminAnyDatabase» для подключения к mongodb через Robo 3T без каких-либо проблем. Однако, когда я использую пользователя с «readAnyDatabase», я не смог подключиться к mongodb с приведенной ниже ошибкой.

введите описание изображения здесь

Ниже приведен журнал MongoDB, когда я инициирую соединение. Он мгновенно завершает сеанс после его аутентификации.

 2020-09-28T17:37:57.065 0800 I  NETWORK  [listener] connection accepted from 10.212.135.200:57344 #23102882 (554 connections now open)
2020-09-28T17:37:57.066 0800 I  NETWORK  [conn23102882] received client metadata from 10.212.135.200:57344 conn23102882: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "4.0.5-17-gd808df2233" }, os: { type: "Windows", name: "Microsoft Windows 8", architecture: "x86_64", version: "6.2 (build 9200)" } }
2020-09-28T17:37:57.125 0800 I  ACCESS   [conn23102882] Successfully authenticated as principal soc on admin from client 10.212.135.200:57344
2020-09-28T17:37:57.170 0800 I  NETWORK  [listener] connection accepted from 10.212.135.200:57345 #23102883 (555 connections now open)
2020-09-28T17:37:57.171 0800 I  NETWORK  [conn23102883] received client metadata from 10.212.135.200:57345 conn23102883: { application: { name: "robo3t" }, driver: { name: "MongoDB Internal Client", version: "4.0.5-17-gd808df2233" }, os: { type: "Windows", name: "Microsoft Windows 8", architecture: "x86_64", version: "6.2 (build 9200)" } }
2020-09-28T17:37:57.224 0800 I  NETWORK  [listener] connection accepted from 10.212.135.200:57346 #23102884 (556 connections now open)
2020-09-28T17:37:57.225 0800 I  NETWORK  [conn23102884] received client metadata from 10.212.135.200:57346 conn23102884: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "4.0.5-17-gd808df2233" }, os: { type: "Windows", name: "Microsoft Windows 8", architecture: "x86_64", version: "6.2 (build 9200)" } }
2020-09-28T17:37:57.283 0800 I  ACCESS   [conn23102884] Successfully authenticated as principal soc on admin from client 10.212.135.200:57346
2020-09-28T17:37:57.320 0800 I  NETWORK  [conn23102882] end connection 10.212.135.200:57344 (555 connections now open)
2020-09-28T17:37:57.339 0800 I  NETWORK  [conn23102883] end connection 10.212.135.200:57345 (554 connections now open)
2020-09-28T17:37:57.512 0800 I  NETWORK  [conn23102884] end connection 10.212.135.200:57346 (553 connections now open)
  

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

введите описание изображения здесь

 2020-09-28T17:58:34.823 0800 I  NETWORK  [listener] connection accepted from 10.212.135.200:57925 #23118931 (587 connections now open)
2020-09-28T17:58:34.833 0800 I  NETWORK  [conn23118931] received client metadata from 10.212.135.200:57925 conn23118931: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "4.0.5-17-gd808df2233" }, os: { type: "Windows", name: "Microsoft Windows 8", architecture: "x86_64", version: "6.2 (build 9200)" } }
2020-09-28T17:58:34.893 0800 I  ACCESS   [conn23118931] Successfully authenticated as principal soc on admin from client 10.212.135.200:57925
  

Может быть, я что-то неправильно настроил? У кого-нибудь есть идея?

Ответ №1:

Для первой ошибки укажите имя набора реплик в конфигурации.

Возможно, у вас неправильные имена хостов.

Проверьте, работает ли соединение с помощью mongo оболочки.

Комментарии:

1. Но проблема в том, что когда я использую пользователя с помощью «userAdminAnyDatabase», я могу войти в систему без каких-либо проблем. Эта проблема появляется только тогда, когда я использую пользователя с «readAnyDatabase». Поэтому я не думаю, что это из-за неправильного имени хоста. Я попытался использовать оболочку mongo для входа в систему (с проблемным пользователем), и все в порядке, и я даже могу запросить некоторые данные из коллекций

2. Аутентификация не требуется и не используется для определения имени набора реплик. Попробуйте другие роли.