Как создать пользователя в  MongoDB

К

В предыдущей статье мы научились устанавливать mongodb на Ubuntu. В этой статье я расскажу как создать пользователя в mongodb.

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

Добавление юзера в mongodb без включенной авторизации

Если у вас еще не включена авторизация в конфиге, то вам достаточно присоединиться к mongodb

mongo

Далее перейти в базу admin, именно в ней мы будем создавать юзера

use adminCode language: plaintext (plaintext)

И добавить пользователя, данный пользователь будет иметь root права

db.createUser({
  user: "rootuser",
  pwd: "rootpassword",
  roles : [ "root" ]
})Code language: plaintext (plaintext)
создание пользователя mongodb

После это выйти из базы данных и зайти с помощью юзера и пароля

mongo --username rootuser --password rootpassword --authenticationDatabase adminCode language: plaintext (plaintext)

Если вы не укажите параметр —password, то надо будем ввести пароль позже. Данный вид аутентификации предпочтителен.

mongo --username rootuser --authenticationDatabase adminCode language: plaintext (plaintext)

Но добавление данного пользователя бесолезено, потому что у нас не включена авторизация.

Включение авторизации на mongodb

Прежде чем создать пользователя в mongodb, лучше включить авторизацию, для этого необходимо либо прописать в конфиге

security:
   authorization: enabledCode language: plaintext (plaintext)

Полный конфиг у нас будет выглядеть так

storage:
  dbPath: "/path/to/mongodata"
systemLog:
  path: "/path/to/logs/mongod.log"
  logAppend: true
  destination: "file"
net:
  bindIp : localhost
processManagement:
  fork : true
security:
   authorization: enabledCode language: plaintext (plaintext)

Либо запускать mongod с параметром —auth

mongod --authCode language: plaintext (plaintext)

Если у вас не добавлено ни одного пользователя в mongodb, то после этого, вы сможете подключиться без авторизации только с localhost, для создания первого юзера. После создания первого юзера, вы не сможете подключится к серверу без авторизации даже с localhost. Это правильно называется Localhost Exception

Создание пользователя mongodb с включенной авторизацией

Для того, чтобы создать пользователя с включенной авторизацией, но без единого пользователя в бд, убедитесь что у вас в конфиге установлено

net:
  bindIp : locahostCode language: plaintext (plaintext)

Далее подключитесь к mongodb

mongoCode language: plaintext (plaintext)

Перейдите в базу данных admin. Вы можете создать пользователя в mongodb в разных базах данных, это бд будет для него базой данных для аутентификации. Мы создадим же в бд admin

use adminCode language: plaintext (plaintext)

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

db.createUser({
  user: "rootuser",
  pwd: "rootpassword",
  roles : [ "root" ]
})Code language: plaintext (plaintext)

Теперь к бд можно подключится с данным пользователем.

Дополнительную информацию вы всегда можете найти на сайте с официальной документацией

Автор

Denis Pershin

Добавить комментарий