Я использую ту же строку соединения для локального и производственного. Когда строка соединения является mongodb://localhost/mydb
Каковы пользователь и пароль? Безопасно ли это поддерживать?
Я использую ту же строку соединения для локального и производственного. Когда строка соединения является 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, если вы хотите предоставить бесплатный доступ для создания баз данных, чтения, записи баз данных и т.д., но вы не хотите создавать корневую роль, вы можете изменить третий шаг с помощью следующее:
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"]})