Знаешь, что бесит в большинстве "гайдов по установке MongoDB"? Они написаны так, будто их целевая аудитория — котёнок, впервые подошедший к миске. Полстраницы воды про "что такое NoSQL" и "какая Mongo классная".
Ты это уже знаешь, иначе бы сюда не пришёл. Тебе нужно, чтобы база встала, работала и не дала доступ каждому встречному с улицы. Давай без кружев и слащавых фраз. Будет быстро, грязно и по делу.
Установка
Для начала Mongo не встанет сама — нужно добавить её репозиторий. Подтягиваем GPG-ключ, чтобы система не визжала, что мы ставим что-то "нечистое":
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Потом добавляем репу под Ubuntu 18.04:
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse' Если Ubuntu нахамит и скажет, что add-apt-repository не существует — ставим software-properties-common. Да, бывает.
Обновляем пакеты и ставим Mongo целиком:
sudo apt update
sudo apt install mongodb-org
В комплект заедут:
mongod— демон базы.mongos— маршрутизатор запросов.mongo— интерактивная консоль, через которую будешь колдовать с базой.
Набор тулов (mongodb-org-tools) для импорта, экспорта и прочей магии.
Запуск
Поднимаем демон и ставим автозапуск, чтобы при перезагрузке не орать в 3 утра "почему не работает":
sudo systemctl start mongod
sudo systemctl enable mongod
Проверяем, что оно дышит:
mongo --eval 'db.runCommand({ connectionStatus: 1 })' Если видишь ok: 1 — живо.
Настройка безопасности
По умолчанию Mongo дружелюбная, как дверь без замка в общаге. Это мило, пока первый же ботнет не вычистит твои данные.
Лезем в /etc/mongod.conf, находим раздел security и включаем авторизацию:
security:
authorization: enabled Это включает RBAC — систему прав, где каждый юзер имеет свои разрешения. Без этого любой сможет ковырять всё подряд.
Применяем изменения:
sudo systemctl restart mongod
Создание админа
Лезем в консоль Mongo:
mongo
Переключаемся на admin:
use admin
Создаём админа:
db.createUser({
user: "mongoAdmin",
pwd: "changeMe",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
Да, пароль changeMe менять обязательно, иначе сюрприз будет не из приятных.
Выходим:
quit()
Проверка
Логинимся под админом:
mongo -u mongoAdmin -p --authenticationDatabase admin
Смотрим пользователей:
show users
А теперь пробуем без пароля (просто mongo) — и убеждаемся, что без авторизации ничего не видно. Если всё видно — значит, ты где-то облажался.
Итог
Теперь у тебя есть Mongo 4.0 на Ubuntu 18.04, с включённой авторизацией и админом. Без сказок про "магический мир данных". Просто рабочая база, готовая принимать запросы и плеваться ошибками, если кто-то попытается сунуться без ключа.
0 комментариев