Итак, я хотел сбросить коллекцию mongoDB, запущенную на другом сервере. Были предприняты следующие шаги:
1. создать имя пользователя и пароль в admin
$ db.createUser(
{
user: "username1",
pwd: "password1",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "clusterAdmin", db: "admin" }
]
}
)
2. Затем добавил частный ip (x.x.x.x) сервера базы данных в поле bindIp mongod.conf (/etc/mongod.conf)
bindIp: 127.0.0.1,x.x.x.x
3. Затем запустил mongodump следующим образом:
$ mongodump --host x.x.x.x:27017 -d database_name -c collection_name --out path_to_mongoDump -u username1 -p password1 --authenticationDatabase admin
Вышеуказанный файл без проблем выгрузил коллекцию на сервер приложений в указанном месте.
Является ли вышеуказанный подход безопасным ? Или есть лучший способ сделать выше?
Спасибо.
Справочные ссылки:
1. Что делает опция конфигурации --bindip в mongodb?
2. Как подключиться к экземпляру MongoDB EC2
3. Как защитить MongoDB с помощью имени пользователя и пароля
4. Mongodump с удаленного сервера