Управление пользователями 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") Другие расширения