Подтвердить что ты не робот

MongoDB, какой пользователь и пароль по умолчанию?

Я использую ту же строку соединения для локального и производственного. Когда строка соединения является mongodb://localhost/mydb

Каковы пользователь и пароль? Безопасно ли это поддерживать?

4b9b3361

Ответ 1

По умолчанию 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"
    

Ответ 2

В дополнение к тому, что уже упоминалось @Camilo Silva, если вы хотите предоставить бесплатный доступ для создания баз данных, чтения, записи баз данных и т.д., но вы не хотите создавать корневую роль, вы можете изменить третий шаг с помощью следующее:

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, 
             { role: "dbAdminAnyDatabase", db: "admin" }, 
             { role: "readWriteAnyDatabase", db: "admin" } ]
  }
)

Ответ 3

Для MongoDB раньше, чем 2.6, команда добавления пользователя root - это addUser (например.)

db.addUser({user:'admin',pwd:'<password>',roles:["root"]})