Я хочу настроить аутентификацию имени пользователя и пароля для моего экземпляра MongoDB, чтобы при любом удаленном доступе запрашивались имя пользователя и пароль. Я попробовал учебник с сайта MongoDB и сделал следующее:
use admin
db.addUser('theadmin', '12345');
db.auth('theadmin','12345');
После этого я вышел и снова побежал монго. И мне не нужен пароль для доступа к нему. Даже если я подключаюсь к базе данных удаленно, у меня не запрашивается имя пользователя и пароль.
ОБНОВЛЕНИЕ Вот решение, которое я в конечном итоге использовал
1) At the mongo command line, set the administrator:
use admin;
db.addUser('admin','123456');
2) Shutdown the server and exit
db.shutdownServer();
exit
3) Restart mongod with --auth
$ sudo ./mongodb/bin/mongod --auth --dbpath /mnt/db/
4) Run mongo again in 2 ways:
i) run mongo first then login:
$ ./mongodb/bin/mongo localhost:27017
use admin
db.auth('admin','123456');
ii) run & login to mongo in command line.
$ ./mongodb/bin/mongo localhost:27017/admin -u admin -p 123456
Имя пользователя и пароль будут работать одинаково для mongodump
и mongoexport
.
authentication
mongodb
murvinlai
источник
источник
Ответы:
Вам нужно начать
mongod
с этой--auth
опции после настройки пользователя.С сайта MongoDB:
MongoDB аутентификация
источник
admin
БД, используйте другой БД и попробуйте снова. Только userAdmin (AnyDatabase) может подключиться кadmin
.Ух ты так много сложных / запутанных ответов здесь.
Это по состоянию на v3.4 .
Короткий ответ.
1) Запустите MongoDB без контроля доступа.
2) Подключиться к экземпляру.
3) Создать пользователя.
4) Остановите экземпляр MongoDB и запустите его снова с контролем доступа.
5) Подключитесь и авторизуйтесь как пользователь.
Длинный ответ: прочитайте это, если хотите правильно понять.
Это действительно просто. Я буду тупить следующее вниз https://docs.mongodb.com/manual/tutorial/enable-authentication/
Если вы хотите узнать больше о ролях, читайте здесь: https://docs.mongodb.com/manual/reference/built-in-roles/
1) Запустите MongoDB без контроля доступа.
2) Подключиться к экземпляру.
3) Создать пользователя-администратора. Далее создается администратор пользователя в
admin
базе данных аутентификации. Пользователь находитсяdbOwner
надsome_db
базой данных, а НЕ надadmin
базой данных, это важно помнить.Или, если вы хотите создать администратора, который является администратором для любой базы данных:
4) Остановите экземпляр MongoDB и запустите его снова с контролем доступа.
5) Подключитесь и аутентифицируйтесь как администратор пользователя к
admin
базе данных аутентификации, а НЕ кsome_db
базе данных аутентификации. Администратор пользователя был создан вadmin
базе данных аутентификации, пользователь не существует вsome_db
базе данных аутентификации.Вы теперь аутентифицированы как
dbOwner
надsome_db
базой данных. Так что теперь, если вы хотите читать / писать / делать что-то прямо вsome_db
базе данных, вы можете перейти на нее.Подробнее о ролях: https://docs.mongodb.com/manual/reference/built-in-roles/
Если вы хотите создать дополнительных пользователей, которые не являются администраторами пользователей и являются обычными пользователями, продолжайте чтение ниже.
6) Создать нормального пользователя. Этот пользователь будет создан в
some_db
базе данных аутентификации внизу.7) Выйдите из оболочки Монго, заново подключитесь, авторизуйтесь как пользователь.
источник
Во-первых, откомментируйте строку, которая начинается
#auth=true
в вашем файле конфигурации mongod (путь по умолчанию/etc/mongo.conf
). Это включит аутентификацию для mongodb.Затем перезапустите mongodb:
sudo service mongod restart
источник
/etc/mongod.conf
не/etc/mongo.conf
Этот ответ для Монго 3.2.1 Ссылка
Терминал 1:
Терминал 2:
если вы хотите добавить без ролей (необязательно):
проверить подлинность или нет:
это должно дать вам:
еще:
источник
use admin
раньше,createUser
иначе это дало ошибку.Вот код JavaScript для добавления пользователей.
Начать
mongod
с--auth = true
Получите доступ к базе данных администратора из оболочки mongo и передайте файл javascript.
Монго админ "Filename.js"
"Filename.js"
Теперь добавление пользователя завершено, мы можем проверить доступ к базе данных из оболочки Монго
источник
https://docs.mongodb.com/manual/reference/configuration-options/#security.authorization
Отредактируйте файл настроек Монго;
Добавьте строку:
Перезапустите сервис
С уважением
источник
Сначала запустите mongoDB на терминале, используя
Теперь запустите оболочку Монго, используя следующие команды
Перезапустите экземпляр MongoDB с контролем доступа.
Теперь аутентифицируйтесь из командной строки, используя
Я прочитал это от
https://docs.mongodb.com/manual/tutorial/enable-authentication/
источник
MongoDB Enterprise > db.system.users.find() { "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SC RAM-SHA-1" : { "iterationCount" : 10000, "salt" : "k96PCEflidMY5seVju+gAw==", "s toredKey" : "CabQTnJtny7cv0wT5X8oX9QOn3A=", "serverKey" : "RJyCdnlIhyIfj2+d44L61 bYK+MU=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "dbAdmin", "db" : "admin" }, { "role" : "userAdmin", "db" : "admin" }, { "role" : "root", "db" : "admin" } ] }
аутентификация все еще не проходитroot
роль, чтобы обеспечить доступ к операциям и всем ресурсам следующих ролей вместе ... роли корняВот что я сделал на Ubuntu 18.04:
источник
Вы можете изменить
/etc/mongod.conf
.Перед
#security:
После
затем
sudo service mongod restart
источник
Выполните следующие шаги в порядке
mongod --auth
в случае Linux, вы можете отредактировать/etc/mongod.conf
файл, чтобы добавить,security.authorization : enabled
а затем перезапустить службу Mongd.mongo -u "admin" -p "admin123" --authenticationDatabase "admin"
. это оноВы можете проверить этот пост, чтобы углубиться в детали и научиться подключаться к нему с помощью mongoose.
источник
Создание пользователя с паролем для конкретной базы данных для безопасного доступа к базе данных:
источник
Вам нужно будет переключиться на базу данных, к которой вы хотите подключить пользователя (не на базу данных администратора) ...
use mydatabase
См. Этот пост для получения дополнительной помощи ... https://web.archive.org/web/20140316031938/http://learnmongo.com/posts/quick-tip-mongodb-users/
источник
Эти шаги работали на меня:
источник
Лучшая практика для подключения к mongoDB:
После первоначальной установки,
use admin
Затем запустите следующий скрипт, чтобы создать администратора
db.createUser( { user: "YourUserName", pwd: "YourPassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "clusterAdmin", db: "admin" } ] })
следующий скрипт создаст администратора для БД.
войти в db.admin используя
mongo -u YourUserName -p YourPassword admin
После входа в систему, вы можете создать N номер базы данных с одинаковыми учетными данными администратора или другой, повторив от 1 до 3.
Это позволяет вам создать другого пользователя и пароль для другой коллекции, которую вы создаете в MongoDB
источник
после того, как вы создадите нового пользователя, пожалуйста, не забудьте
grant
read/write/root
разрешить пользователю. Вы можете попробоватьcmd: db.grantRolesToUser('yourNewUsername',[{ role: "root", db: "admin" }])
источник