MongoDB: Создать Пользователя — Для Базы Данных, Admin, Root

В MongoDB пользователи могут иметь привилегии в разных базах данных.

В данной статье я покажу, как создать, показать и удалить пользователя в MongoDB.

Я также покажу, как создать пользователя с admin правами и пользователя с правами root (супер пользователя) на все базы данных в MongoDB.

Создание Пользователя в MongoDB

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

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

$ mongo

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

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

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

> use admin

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

Создайте пользователя 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" } ]
  }
)

Создать Пользователя Базы Данных

Перейдите в базу данных, в которой вы хотите создать обычного пользователя:

> use my-database

Создайте пользователя my-user с правами readWrite на базу данных my-database:

> db.createUser(
  {
    user: "my-user",
    pwd: "passw0rd",
    roles: [ { role: "readWrite", db: "my-database" } ]
  }
)

Вы также можете создать пользователя с различными правами на разные базы данных.

Например, вы можете создать пользователя my-user и дать ему права readWrite на базу данных my-database и права read на другую базу данных another-database:

> db.createUser(
  {
    user: "my-user",
    pwd: "passw0rd",
    roles: [ 
             { role: "readWrite", db: "my-database" },
             { role: "read", db:"another-database" }
           ]
  }
)

Больше информации о встроенных ролях вы можете получить из официальной документации.

Дельный Совет: Включение аутентификации в MongoDB (выключена по умолчанию)! Читать Далее →

Показать Пользователей в MongoDB

Показать пользователей в текущей базе данных:

> db.getUsers()
- or -
> show users

Удалить Пользователя в MongoDB

Удалить пользователя из текущей базы данных:

> db.dropUser("my-user")