2016-08-12 4 views

ответ

65

По умолчанию mongodb не имеет включенного контроля доступа, поэтому пользователь и пароль по умолчанию не заданы.

Чтобы включить управление доступом, используйте либо параметр командной строки --auth, либо настройку файла конфигурации security.authorization.

Вы можете использовать следующую процедуру или обратиться к Enabling Auth в документах MongoDB.

Процедура

  1. Start MongoDB без контроля доступа.

    mongod --port 27017 --dbpath /data/db1 
    
  2. Подключение к экземпляру.

    mongo --port 27017 
    
  3. Создать пользователя.

    use admin 
    db.createUser(
        { 
        user: "myUserAdmin", 
        pwd: "abc123", 
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] 
        } 
    ) 
    
  4. Повторно запустить экземпляр MongoDB с контролем доступа.

    mongod --auth --port 27017 --dbpath /data/db1 
    
  5. Аутентификация в качестве администратора.

    mongo --port 27017 -u "myUserAdmin" -p "abc123" \ 
        --authenticationDatabase "admin" 
    
+4

Если пользователь создан с ролью userAdminAnyDatabase, тогда будет невозможно создать любую базу данных. Поэтому раздел ролей должен быть: role: [{role: "root", db: "admin"}] – georgeos

+2

Пожалуйста, ссылку [оригинальное сообщение из руководства MongoDB] (https://docs.mongodb.com/manual/tutorial/enable -authentication /) –

1

Для MongoDB раньше, чем 2.6, команда для добавления корневого пользователя является addUser (например)

db.addUser({user:'admin',pwd:'<password>',roles:["root"]}) 
+0

ТипError: db.addUser не является функцией не работает –

+0

До версии 2.6 у вас был 'db.addUser'. Начиная с 2.6 и в текущей версии 3.4.x вы можете создать пользователя с 'db.CreateUser'. –

2

Кроме того, с чем уже упоминалось @Camilo Silva, если вы хотите, чтобы дать свободный доступ для создания баз данных, чтения, записи баз данных и т. д., но вы не хотите создавать основную роль, вы можете изменить 3-й шаг следующим образом:

use admin 
db.createUser(
    { 
    user: "myUserAdmin", 
    pwd: "abc123", 
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, 
      { role: "dbAdminAnyDatabase", db: "admin" }, 
      { role: "readWriteAnyDatabase", db: "admin" } ] 
    } 
) 
Смежные вопросы