MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Konfigurowanie uwierzytelniania MongoDB-CR jako domyślnego w MongoDB 3.x

Wszyscy użytkownicy stworzeni w MongoDB 3.x są stworzeni za pomocą SCRAM-SHA1, co łamie wsteczną kompatybilność z narzędziami, które oczekują MongoDB-CR. Istnieje lista narzędzi i sterowników do prania, które nie zostały jeszcze zaktualizowane do obsługi SCRAM-SHA1, takie jak Robomongo i MongoVUE.

W niektórych przypadkach, nawet jeśli dostępna jest nowsza wersja sterownika/ORM, możesz nie być gotowy do uaktualnienia sterownika ze względu na pewne problemy ze zgodnością.

MongoDB obsługuje dwie metody uwierzytelniania:

  1. MongoDB- CR (odpowiedź na wyzwanie)
    Mechanizm uwierzytelniania użytkowników za pomocą haseł. Domyślny mechanizm uwierzytelniania do wersji 2.6.x. Więcej informacji można znaleźć w dokumentacji.
  2. SCRAM-SHA1
    Jest to standard IETF dotyczący mechanizmów wezwania do odpowiedzi, służący do uwierzytelniania użytkowników za pomocą haseł. To jest nowszy i bezpieczniejszy system. Nie jest wstecznie kompatybilny z MongoDB-CR. Więcej informacji można znaleźć w dokumentacji.

MongoDB CR to starszy system uwierzytelniania. MongoDB 3.X zmienił domyślny system uwierzytelniania użytkowników na SCRAM-SHA1. Tak więc każdy nowy użytkownik utworzony w systemie jest użytkownikiem SCRAM-SHA1. Ponieważ SCRAM-SHA1 nie jest kompatybilny wstecznie, łamie autoryzację dla wszystkich użytkowników korzystających z mechanizmu MONGODB-CR.

Możesz jednak chcieć użyć nowego silnika pamięci masowej WiredTiger, który jest dostępny w MongoDB 3.x. Oto kroki, aby skonfigurować MONGODB-CR jako domyślny mechanizm uwierzytelniania w MongoDB 3.x, zakładając, że używasz zestawu replik:

  1. Utwórz klaster 3.x MongoDB.
  2. Zatrzymaj wszystkie węzły zestawu replik innych niż podstawowy.
  3. Wyłącz uwierzytelnianie na serwerze podstawowym i uruchom ponownie węzeł. Zrobiłem to, komentując następujące wpisy w pliku konfiguracyjnym MongoDB i ponownie uruchamiając serwer:
    #security:
    #  authorization: enabled
    #  keyFile: /var/lib/mongo/rskey
    #replication:
    #  replSetName: RS-rsname-0
    
  4. Połącz się z podstawowym i zmień wersję schematu:
    use admin;
    var schema = db.system.version.findOne({"_id" : "authSchema"});
    schema.currentVersion = 3;
    db.system.version.save(schema)
    
  5. Cofnij zmiany w pliku mongodb.conf w kroku 3 powyżej i uruchom ponownie MongoDB.
  6. Uruchom ponownie MongoDB w innych węzłach zestawu replik i upewnij się, że zestaw replik jest sprawny. Gdy to zrobisz, wszyscy użytkownicy utworzeni w systemie będą użytkownikami MongoDB-CR. Możesz to sprawdzić, wykonując następujące polecenie:
    db.system.users.find().pretty();
    

Pamiętaj jednak, że powinno to być tylko tymczasowe obejście. Bezpieczniejszą długoterminową poprawką jest uaktualnienie serwera MongoDB do modelu SCRAM-SHA1. Gdy będziesz gotowy do aktualizacji, uruchom następujący skrypt, aby zaktualizować wersję schematu użytkowników do SCRAM-SHA1:

db.getSiblingDB("admin").runCommand({authSchemaUpgrade});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Łączenie i tworzenie złączeń MongoDB za pomocą SQL:część 3

  2. MongoDB $rok

  3. Wykonywanie case-statement w ramach agregacji mongodb

  4. Spring Data MongoDB - Adnotacja @CreatedDate nie działa podczas używania z niestandardowym polem identyfikatora

  5. Bezagentowe monitorowanie bazy danych za pomocą ClusterControl