Управление пользователями MongoDB

Управление пользователями в MongoDB включает такие операции, как создание пользователей, назначение ролей, аутентификация и вход в систему.

Ниже приведено подробное объяснение, включая управление пользователями с помощью MongoDB Shell (mongo) или MongoDB Compass.

Управление пользователями с помощью MongoDB Shell (mongo)

Ниже приведено подробное объяснение управления пользователями с использованием MongoDB Shell (mongosh), включая конкретные шаги по созданию пользователей, назначению ролей, аутентификации и входу в систему.

1. Подключение к MongoDB

Сначала откройте терминал и используйте команду mongosh для подключения к серверу MongoDB:

mongosh --host <hostname> --port <port>

Пояснение:

  • mongosh: Запускает инструмент командной строки MongoDB Shell.
  • --host <hostname>: Указывает имя хоста или IP-адрес сервера MongoDB.
    • <hostname>: Имя хоста сервера MongoDB (например,localhost) или IP-адрес (например,127.0.0.1)。
  • --port <port>: Указывает номер порта сервера MongoDB.
    • <port>: Номер порта, который прослушивает сервер MongoDB, порт по умолчанию —27017。

2. Переключитесь на целевую базу данных

В MongoDB пользователи создаются для конкретной базы данных. Используйте командуuse, чтобы переключиться на базу данных, в которой вы хотите создать пользователя:

use <database_name>
  • database_name— это база данных, на которую нужно переключиться.

3. Создание пользователя

Используйте команду db.createUser, чтобы создать пользователя и назначить роли.

Например, чтобы создать пользователя с именем testuser и паролем password123, а также предоставить роли readWrite и dbAdmin:

db.createUser({
  user: "testuser",
  pwd: "password123",
  roles: [
    { role: "readWrite", db: "<database_name>" },
    { role: "dbAdmin", db: "<database_name>" }
  ]
})

4. Проверка пользователя

После создания пользователя вы можете использовать команду db.auth для проверки подлинности пользователя:

db.auth("testuser", "password123")

5. Включение аутентификации

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

Отредактируйте файл конфигурации MongoDB mongod.conf и добавьте следующее содержимое:

security:
  authorization: "enabled"

Затем перезапустите службу MongoDB, чтобы применить изменения.

6. Вход от имени пользователя

После включения аутентификации необходимо подключиться к MongoDB, используя учётные данные созданного пользователя:

mongosh --host <hostname> --port <port> -u "testuser" -p "password123" --authenticationDatabase "<database_name>"

7. Удаление пользователя

Используйте командуdb.dropUserдля удаления указанного пользователя.

Например, чтобы удалить пользователя с именем testuser:

db.dropUser("testuser")

Примеры операций

Ниже приведён полный пример рабочего процесса:

Запустите MongoDB Shell и подключитесь к серверу:

mongosh --host localhost --port 27017

Переключитесь на базу данных testdb:

use testdb

Создайте пользователя testuser:

db.createUser({
  user: "testuser",
  pwd: "password123",
  roles: [{ role: "readWrite", db: "testdb" }]
})

Включите аутентификацию и перезапустите экземпляр MongoDB

Отредактируйте файл mongod.conf и добавьте следующее содержимое:

security:
  authorization: "enabled"

Перезапустите службу MongoDB:

sudo systemctl restart mongod

Подключитесь с аутентификацией, используя пользователя testuser:

mongosh --host localhost --port 27017 -u "testuser" -p "password123" --authenticationDatabase "testdb"

Удалите пользователя testuser:

db.dropUser("testuser")
Другие расширения