MongoDB: Auth — Включить Аутентификацию — Создать Admin/Root Пользователей

По умолчанию, аутентификация в MongoDB отключена, но это не особо важно, так как из коробки, MongoDB слушает только localhost.

Но если вы собираетесь разрешить удаленное подключение к MongoDB, то аутентификацию безусловно необходимо включить.

В следующей статье я покажу, как включить аутентификацию в MongoDB и как создать пользователей admin и root.

Дельный Совет: Для разрешению удаленного доступа к MongoDB — измените bindIp! Читать Далее →

Создать Admin/Root Пользователя в MongoDB

Подключитесь к MongoDB, с помощью mongo shell:

$ mongo

Authentication Database: В MongoDB пользователь может иметь привилегии в разных базах данных. При добавлении пользователя вы создаете пользователя в конкретной базе данных. Эта база данных является базой данных аутентификации для этого пользователя.

Перейдите в базу данных admin:

> use admin

Создайте пользователя mongo-admin:

> db.createUser(
  {
    user: "mongo-admin",
    pwd: "passw0rd",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

Создайте пользователя mongo-root:

> db.createUser(
  {
    user: "mongo-root",
    pwd: "passw0rd",
    roles: [ { role: "root", db: "admin" } ]
  }
)

Admin vs Root: Роль userAdminAnyDatabase в MongoDB дает возможность создавать пользователей и назначать им роли, но сама по себе она не позволяет пользователю делать что-либо еще. Роль суперпользователя в MongoDB- это root.

Включить Аутентификацию в MongoDB

Откройте конфиг-файл MongoDB /etc/mongod.conf и включите авторизацию:

security:
  authorization: "enabled"

Перезапустите mongod для применения изменений:

$ sudo service mongod restart

Как только аутентификация будет включена, вы не сможете выполнять команды MongoDB без авторизации:

«errmsg» : «command listDatabases requires authentication»,
«code» : 13,
«codeName» : «Unauthorized»

Перейдите в базу данных аутентификации (в нашем случае admin) и авторизуйтесь:

> use admin
> db.auth("mongo-admin", "passw0rd" )
- or -
> db.auth("mongo-root", "passw0rd" )

Дельный Совет: Как подключиться к удаленному серверу MongoDB из командной строки с помощью mongo shell! Читать Далее →