MongoDB - администратор не авторизован на плане песочницы - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь обновить версию своего сервера базы данных песочницы до 4.x.x. Сейчас на 3,6,6

Для этого мне нужно создать пользователя с правами администратора.

Итак, я подключаюсь к оболочке Монго и запускаю следующее:

db.createUser( { user: "admin", pwd: "password", roles: [ { role: "root", db: "mydatabasename" } ] } );

Однако я получаю следующую ошибку:

Error: couldn't add user: not authorized on admin to execute command 

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

Мне интересно, возможно ли это сделать даже на не выделенном сервере баз данных. Если нет, то как я могу обновить версию сервера?

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 11 ноября 2018

Если это первый пользователь, которому вы пытаетесь подключиться в БД, вам нужно использовать «Исключение Localhost»:

Исключение localhost позволяет вам включить контроль доступа, а затем создать первого пользователя в системе. За исключением локального хоста, после включения управления доступом подключитесь к интерфейсу localhost и создайте первого пользователя в базе данных администратора. Первый пользователь должен иметь привилегии для создания других пользователей, таких как пользователь с userAdmin или userAdminAnyDatabase роль

Создайте пользователя следующим образом:

use admin;
db.createUser( { user: "userAdminAnyDB", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } );

db.auth("userAdminAnyDB", "password")

После успешного входа в систему с использованием учетных данных userAdminAnyDB создайте необходимый для развертывания базы данных.

db.createUser( { user: "admin", pwd: "password", roles: [ { role: "root", db: "mydatabasename" } ] } );
...