2013-04-30 19 views
8

Mam środowisko produkcyjne, w którym moja mongoDB jest już uruchomiona, a administratorzy DBA proszą nas o zmianę hasła, którego używamy do uwierzytelniania. Jednym ze sposobów, aby to zrobić ponownie uruchomić polecenie adduser z nowym hasłem, jak opisano w change passwordZmiana hasła w MongoDB dla istniejącego użytkownika

> db.auth("app_user", "somepassword") 
db.addUser("app_user", "new password") 

To jest tak dobre, jak dodanie nowego użytkownika.

Rozumiem, że muszę ponownie uruchomić mongod z opcją --auth po dodaniu nowego użytkownika zgodnie z opisem in, ale ponieważ jest to env produkcyjny i nie mogę zrestartować mojego serwera. Czy jest jakaś inna opcja? lub jeśli moje podejście jest niewłaściwe, jak zmienić hasło w mongoDB

+0

Musisz tylko zrestartować, jeśli przechodzisz od auth do auth - nie musisz restartować. –

+0

Wygląda na to, że musisz ponownie uruchomić komputer podczas dodawania/aktualizowania użytkowników do nieautoryzowanego mongody (tak, nadal jest możliwe uwierzytelnianie użytkowników w określonej bazie danych). – Benoit

Odpowiedz

1

Połączyłeś się z pytaniem o dodanie uwierzytelnienia do MongoDB, które wymaga uruchomienia 'mongod' z opcją --auth. Ponieważ już używasz --auth, ponowne uruchomienie nie jest konieczne w twoim scenariuszu.

Po prostu zmień hasło użytkownika, a będziesz gotowy do pracy.

+1

Dzięki Asiu, ale czy to jedyny sposób na zmianę hasła? "adduser" jest nieco mylący. –

+1

Zgadzam się, że to nie jest najlepsza nazwa polecenia, ale addUser utworzy użytkownika, jeśli nie istnieje lub zmieni hasło, jeśli istnieje. –

+0

Od wersji 2.4 to już nie działa. Wykonanie JavaScript nie powiodło się: użytkownik już istnieje z tą kombinacją username/userSource ' – UpTheCreek

0

Jeśli zmieniono ustawienia zabezpieczeń w Mongo pliku konfiguracyjnego, którego nie można zmienić. Aby to zrobić, należy ustawić authorization do disabled:

Zatrzymaj mongod usługa:

$ sudo service mongod stop 

Otwarte Mongo plik konfiguracyjny (ścieżki mogą być różne w systemie):

Linux

Ścieżka do pliku konfiguracyjnego: "/etc/mongod.conf"

Okna

Config Ścieżka pliku „C: \ Program Files \ MongoDB \ Server \ 3.6 \ mongod.cfg”

Znajdź authorization i ustawić ją na disabled:

security: 
    authorization: enabled 

zmiana:

security: 
    authorization: disabled 

Teraz zaczynają Mongo usługę:

$ sudo service mongod start 

i zmienić hasło od wewnątrz Mongo shell:

> use mydb 
> db.updateUser("myUser", {pwd: "myNewPassword" }) 

Teraz można ustawić authorization powrotem do tego, co było. Po prostu zatrzymaj usługę Mongo, zmień ustawienia i uruchom usługę.