По умолчанию, MongoDB не использует какие-либо способы авторизации для доступа к базе данных.
Сами разработчики MongoDB объясняют это тем, что всю логику должно содержать в себе приложение, а база должна делать то, для чего она лучше всего и предназначена — хранение и управление данными.
В SQL базах вы можете иметь множество пользователей, групп и схем для более тонкой настройки прав доступа к данным. Но если не рассматривать MongoDB только со стороны философии, которую они пропагандируют, то можно найти прекрасный механизм авторизации.
Хотите добавить пользователей к своей базе на MongoDB ?
MongoDB позволяет управлять пользователями на уровне базы, но правда только в «read/write» или «readonly» режимах.
Создание пользователя с правами «read/write»:
$ ./mongo
> use mydatabase
> db.addUser(«admin», «Sup3rG00dP@azzword»)
Создание пользователя с правами «readonly»:
> db.addUser(«web», «prettyGoodPass», true)
Параметр true как раз и задает readonly права для создаваемого пользователя.
Смена пароля:
Для смены пароля необходимо еще раз вызвать addUser
> db.addUser(«web», «wayGooderPass», true)
Удаление пользователя:
Для удаления пользователя вам необходимо удалить соответсвующий документ в system.users коллекции
> db.system.users.remove({«user» : «web»});
Настроить монго для использования авторизации:
Если вы хотите полностью закрыть неавторизованный доступ, то требуется изменение конфигурации MongoDB.
auth = true
После этих изменений требуется перезапуск демона.
Если вы попытаетесь получить доступ с данными несуществующего пользователя, то вы получите ошибку вида:
error: { “$err” : “unauthorized for db [mydatabase] lock type: -1 ” }
Также readonly пользователь при попытке записи получит ошибку:
unauthorized