Używam tych samych parametrów połączenia w środowisku lokalnym i produkcyjnym. Gdy ciąg połączenia tomongodb://localhost/mydb
Jaka jest nazwa użytkownika i hasło? Czy utrzymywanie tego w ten sposób jest bezpieczne?
Domyślnie mongodb nie ma włączonej kontroli dostępu, więc nie ma domyślnego użytkownika ani hasła.
Aby włączyć kontrolę dostępu, użyj opcji wiersza poleceń --auth
lub ustawienia pliku konfiguracyjnego security.authorization.
Możesz skorzystać z poniższej procedury lub zapoznać się z tematem Włączanie uwierzytelniania w dokumentacji MongoDB.
Uruchom MongoDB bez kontroli dostępu.
mongod --port 27017 --dbpath /data/db1
Połącz się z instancją.
mongo --port 27017
Utwórz administratora użytkownika.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Uruchom ponownie instancję MongoDB z kontrolą dostępu.
mongod --auth --port 27017 --dbpath /data/db1
Uwierzytelnij się jako administrator użytkowników.
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
Oprócz tego, o czym już wspomniał @Camilo Silva, jeśli chcesz dać bezpłatny dostęp do tworzenia baz danych, odczytu, zapisu itp., Ale nie chcesz tworzyć roli roota, możesz zmienić trzeci krok w następujący sposób:
use admin db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" } ] } )
źródło
W przypadku MongoDB wcześniejszych niż 2.6 polecenie dodania użytkownika root to
addUser
(np.)db.addUser({user:'admin',pwd:'<password>',roles:["root"]})
źródło
db.addUser
. Począwszy od 2.6 iw aktualnej wersji 3.4.x możesz stworzyć użytkownika zdb.CreateUser
.db.createUser
;) ( docs.mongodb.com/manual/reference/method/db.createUser )Oprócz wcześniej udzielonych odpowiedzi, jedną z opcji jest zastosowanie podejścia „wyjątku hosta lokalnego” w celu utworzenia pierwszego użytkownika, jeśli baza danych jest już uruchomiona z kontrolą dostępu (
--auth
przełącznikiem). Aby to zrobić, musisz mieć dostęp localhost do serwera, a następnie uruchomić:mongo use admin db.createUser( { user: "user_name", pwd: "user_pass", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" } ] })
Jak podano w dokumentacji MongoDB:
Oto link do tej sekcji dokumentów.
źródło