Я использую одну и ту же строку подключения для локальной и производственной среды. Когда строка подключенияmongodb://localhost/mydb
Какое имя пользователя и пароль? Насколько безопасно хранить это так?
По умолчанию mongodb не имеет включенного контроля доступа, поэтому нет пользователя или пароля по умолчанию.
Чтобы включить контроль доступа, используйте параметр командной строки --auth
или параметр файла конфигурации security.authorization.
Вы можете использовать следующую процедуру или обратиться к Включение аутентификации в документации MongoDB.
Запустите MongoDB без контроля доступа.
mongod --port 27017 --dbpath /data/db1
Подключитесь к экземпляру.
mongo --port 27017
Создайте пользователя-администратора.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Перезапустите экземпляр MongoDB с контролем доступа.
mongod --auth --port 27017 --dbpath /data/db1
Авторизуйтесь как администратор пользователя.
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
В дополнение к тому, что уже упоминал @Camilo Silva, если вы хотите предоставить бесплатный доступ для создания баз данных, чтения, записи баз данных и т.д., но вы не хотите создавать корневую роль, вы можете изменить 3-й шаг следующим образом:
use admin db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" } ] } )
источник
Для MongoDB ранее, чем 2.6, команда для добавления пользователя root
addUser
(например)db.addUser({user:'admin',pwd:'<password>',roles:["root"]})
источник
db.addUser
. Начиная с 2.6 и в текущей версии 3.4.x вы можете создать пользователя с помощьюdb.CreateUser
.db.createUser
;) ( docs.mongodb.com/manual/reference/method/db.createUser )В дополнение к ранее предоставленным ответам одним из вариантов является использование подхода «исключение localhost» для создания первого пользователя, если ваша база данных уже запущена с контролем доступа (
--auth
переключатель). Для этого вам нужно иметь доступ к серверу localhost, а затем запустить:mongo use admin db.createUser( { user: "user_name", pwd: "user_pass", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" } ] })
Как указано в документации MongoDB:
Вот ссылка на этот раздел документации.
источник