Mongodb Atlas: не разрешено администратором выполнять команду

У меня есть кластер MongoDB Atlas, в котором я пытаюсь просто скопировать базу данных в том же экземпляре. К сожалению, каждый раз, когда я пытаюсь запустить команду администратора db.copyDatabase() или copydb, я получаю следующую ошибку:

not authorized on admin to execute command

Что очень странно, потому что у меня всего один пользователь, и он имеет доступ ко всему, по крайней мере, насколько я могу судить по атласу:

enter image description here

Я выполнил поиск в stackoverflow, но похоже, что большинство ответов относятся к экземплярам mongod, работающим локально, а не к атласам, запущенным в атласе... Я неправильно настроил пользователя?

Ответ 1

В итоге я задал этот вопрос дискуссионному форуму Университета MongoDB. В случае, если кто-то сталкивается с этим, это, по-видимому, потому, что я использую свободный кластер.

Ответ 2

У меня возникла та же проблема, когда я пытался подключиться к кластеру с Node.js версии 3.0 или выше и по ссылке ниже:

MongoDB + SRV://имя пользователя: [email protected]/test retryWrites = истина

Выбрав версию 2.2.12 или выше и используя предоставленную ссылку, все прошло хорошо

MongoDB://имя пользователя: [email protected]: 27017, cluster0-shard-00-01-eoowo.mongodb.net: 27017, cluster0-осколок-00-02-eoowo. mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true

Ответ 3

Это сводило меня с ума... Оказывается, стандартная ссылка, предоставленная MongoDB, пыталась назвать мою базу данных по умолчанию "admin". Изменить ссылку с

mongodb+srv://username:[email protected]/admin? retryWrites = true и w = большинство

на

mongodb+srv://username:[email protected]/Тест retryWrites = истина & амп;? ш = большинство

Вы можете ввести любое слово для проверки, но не для администратора. Надеюсь это поможет!

Ответ 4

Я столкнулся с подобным препятствием и провел несколько часов, проблема была в строке подключения, предоставленной атласом mongodb+srv://username:[email protected]/test?retryWrites=true: mongodb+srv://username:[email protected]/test?retryWrites=true

Я использовал другую строку подключения и работал отлично. Вот оно: mongodb://username:[email protected]+port/yourdb?retryWrites=true&ssl=true&authSource=admin. Убедитесь, что имя кластера + порт выглядит следующим образом: clusterName-shard-00-00-jynkd.mongodb.net:27017

Ответ 5

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

enter image description here

Ответ 6

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

в этом случае вам нужно использовать слово ключ использовать [collection_name]

это ссылка на этот ответ.

это по-испански.

https://victorroblesweb.es/2016/12/24/crear-una-base-datos-mongodb/

Ответ 7

Если вы использовали mongoose, я решил похожую ошибку при обновлении mongoose до последней версии (на основе этого поста).