DevOps

Как создать пользователя в  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)

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

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

Published by
Denis Pershin

Recent Posts

Как исправить ошибку «Write Failed: broken pipe» при SSH соединении

Ошибка "Write Failed: broken pipe" в SSH соединении обычно возникает, когда клиент или сервер разрывает…

11 месяцев ago

Java Enum — перечисления в Java

Что такое Enum в Java Перечисление (enum) в Java - это тип данных, который позволяет…

2 года ago

Массивы в Java — создание, доступ к элементам, изменение данных

Что такое массивы? Массив - это структура данных в Java, которая представляет собой упорядоченную коллекцию…

2 года ago

ArrayList в Java — Основное

ArrayList в Java - это класс, предоставляющий возможность создания массива переменной длины, который можно изменять…

2 года ago

Как подключиться к Yandex Cloud Storage через AWS S3 golang

Проблема Если вы вдруг решили подключиться в Yandex Cloud Storage с помощью библиотеки golang aws,…

2 года ago

JDK MIssion Control на Mac

В данной заметке я попытаюсь рассказать как исправить ошибку с запуском JDK Mission Control на…

2 года ago

This website uses cookies.