В предыдущей статье мы научились устанавливать mongodb на Ubuntu. В этой статье я расскажу как создать пользователя в mongodb.
MongoDB содержит огромное количество ролей, создавая пользователя, вы можете назначать ему одну или несколько ролей, тем самым регулируя доступ к своей базе данных.
Добавление юзера в mongodb без включенной авторизации
Если у вас еще не включена авторизация в конфиге, то вам достаточно присоединиться к mongodb
mongo
Далее перейти в базу admin, именно в ней мы будем создавать юзера
use admin
Code language: plaintext (plaintext)
И добавить пользователя, данный пользователь будет иметь root права
db.createUser({
user: "rootuser",
pwd: "rootpassword",
roles : [ "root" ]
})
Code language: plaintext (plaintext)
После это выйти из базы данных и зайти с помощью юзера и пароля
mongo --username rootuser --password rootpassword --authenticationDatabase admin
Code language: plaintext (plaintext)
Если вы не укажите параметр —password, то надо будем ввести пароль позже. Данный вид аутентификации предпочтителен.
mongo --username rootuser --authenticationDatabase admin
Code language: plaintext (plaintext)
Но добавление данного пользователя бесолезено, потому что у нас не включена авторизация.
Включение авторизации на mongodb
Прежде чем создать пользователя в mongodb, лучше включить авторизацию, для этого необходимо либо прописать в конфиге
security:
authorization: enabled
Code 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: enabled
Code language: plaintext (plaintext)
Либо запускать mongod с параметром —auth
mongod --auth
Code language: plaintext (plaintext)
Если у вас не добавлено ни одного пользователя в mongodb, то после этого, вы сможете подключиться без авторизации только с localhost, для создания первого юзера. После создания первого юзера, вы не сможете подключится к серверу без авторизации даже с localhost. Это правильно называется Localhost Exception
Создание пользователя mongodb с включенной авторизацией
Для того, чтобы создать пользователя с включенной авторизацией, но без единого пользователя в бд, убедитесь что у вас в конфиге установлено
net:
bindIp : locahost
Code language: plaintext (plaintext)
Далее подключитесь к mongodb
mongo
Code language: plaintext (plaintext)
Перейдите в базу данных admin. Вы можете создать пользователя в mongodb в разных базах данных, это бд будет для него базой данных для аутентификации. Мы создадим же в бд admin
use admin
Code language: plaintext (plaintext)
И создайте пользователя mongodb. Первый пользователь с включенной авторизацией в конфиге, должен иметь права администратора и возможность создавать других пользвотелей.
db.createUser({
user: "rootuser",
pwd: "rootpassword",
roles : [ "root" ]
})
Code language: plaintext (plaintext)
Теперь к бд можно подключится с данным пользователем.
Дополнительную информацию вы всегда можете найти на сайте с официальной документацией