создать безопасную базу данных в mongodb - PullRequest
7 голосов
/ 23 марта 2011

Я хочу создать безопасную базу данных в mongodb.

Безопасность означает, что приложению необходимо передать имя пользователя / пароль для подключения к моей базе данных в mongodb.

Ответы [ 2 ]

18 голосов
/ 23 марта 2011

Из учебника по Mongo Java

MongoDB может работать в безопасном режиме, где доступ к базам данных контролируется с помощью аутентификации по имени и паролю. При запуске в этом режиме любое клиентское приложение должно предоставить имя и пароль перед выполнением каких-либо операций. В драйвере Java вы просто делаете следующее с подключенным объектом mongo:

boolean auth = db.authenticate(myUserName, myPassword);

Если имя и пароль действительны для базы данных, аутентификация будет истинной. Иначе это будет ложно. Вы должны просмотреть журнал MongoDB для получения дополнительной информации, если таковой имеется.

Большинство пользователей запускают MongoDB без аутентификации в доверенной среде.


Настройка аутентификации и безопасности

Аутентификация хранится в коллекции system.users каждой базы данных. Например, в базе данных projectx, projectx.system.users будет содержать информацию о пользователе.

Сначала необходимо настроить пользователя-администратора для всего процесса сервера БД. Этот пользователь хранится в специальной базе данных администратора.

Если в admin.system.users не настроены пользователи, можно получить доступ к базе данных из интерфейса localhost без аутентификации. Таким образом, с сервера, на котором работает база данных (и, следовательно, на локальном хосте), запустите оболочку базы данных и настройте пользователя с правами администратора:

$ ./mongo
> use admin
> db.addUser("theadmin", "anadminpassword")

Теперь у нас есть пользователь, созданный для администратора базы данных. Обратите внимание, что если мы ранее не проходили аутентификацию, мы теперь должны, если мы хотим выполнить дальнейшие операции, так как в admin.system.users есть пользователь.

> db.auth("theadmin", "anadminpassword")

Мы можем просматривать существующих пользователей для базы данных с помощью команды:

> db.system.users.find()

Теперь давайте настроим «обычного» пользователя для другой базы данных.

> use projectx
> db.addUser("joe", "passwordForJoe")

Наконец, давайте добавим пользователя только для чтения. (поддерживается только в 1.3.2 +)

> use projectx
> db.addUser("guest", "passwordForGuest", true)
3 голосов
/ 25 апреля 2014
  • Создайте пользователя-администратора для экземпляра mongo,

> use admin

> db.addUser("admin", "xyzxyz")

  • Переключитесь на дБ, для котороготребуется проверка подлинности

> use newdb

> db.addUser("newuser", "strongpwd")

  • Остановите экземпляр / службу mongo.Если mongodb был установлен через ppa, то он настраивается как сервис.

sudo service mongodb stop

Если он был установлен из источника, остановите процесс, используя:

/etc/init.d/mongodb stop

  • Изменитьфайл конфигурации для использования аутентификации по умолчанию

vim /etc/mongodb.conf

auth = true

  • Запустите mongodb.Если это услуга

sudo service mongodb restart

else

mongod --config /etc/mongodb.conf

  • Проверьте, включена ли аутентификация:

> show collections на newdb должно выдавать ошибку

"$err" : "not authorized for query on newdb.system.namespaces",
"code" : 16550

и должно работать после

> db.auth("newuser", "strongpwd")

Теперь дБ newdb защищено.

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