MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Конфигуриране на удостоверяване на MongoDB-CR по подразбиране на MongoDB 3.x

Всички потребители, създадени в MongoDB 3.x, са създадени със SCRAM-SHA1, което нарушава обратната съвместимост с инструменти, които очакват MongoDB-CR. Има списък с инструменти и драйвери, които все още не са актуализирани, за да поддържат SCRAM-SHA1, като Robomongo и MongoVUE.

В някои случаи, дори ако е налична по-новата версия на драйвера/ORM, може да не сте готови да надстроите драйвера си поради някои проблеми със съвместимостта.

MongoDB поддържа два метода за удостоверяване:

  1. MongoDB-CR (отговор на предизвикателство)
    Механизъм за удостоверяване на потребители с пароли. Механизъм за удостоверяване по подразбиране до 2.6.x. Вижте документацията за повече подробности.
  2. SCRAM-SHA1
    Това е IETF стандарт за механизми за отговор на предизвикателство за удостоверяване на потребители с пароли. Това е по-новата и по-сигурна система. Не е обратно съвместим с MongoDB-CR. Вижте документацията за повече подробности.

MongoDB CR е наследената система за удостоверяване. MongoDB 3.X превключи системата за удостоверяване на потребител по подразбиране на SCRAM-SHA1. Така че всички нови потребители, създадени в системата, са потребители на SCRAM-SHA1. Тъй като SCRAM-SHA1 не е обратно съвместим, той прекъсва удостоверяването с всички потребители, използващи механизма MONGODB-CR.

Въпреки това, може да искате да използвате новата машина за съхранение на WiredTiger, която е налична в MongoDB 3.x. Ето стъпките за конфигуриране на MONGODB-CR като механизъм за удостоверяване по подразбиране в MongoDB 3.x, ако приемем, че използвате набор от реплика:

  1. Създайте 3.x MongoDB клъстер.
  2. Спрете всички възли от набора от реплика, различни от основния.
  3. Деактивирайте удостоверяването на основния и рестартирайте възела. Направих това, като коментирах следните записи в conf файла на MongoDB и рестартирах сървъра:
    #security:
    #  authorization: enabled
    #  keyFile: /var/lib/mongo/rskey
    #replication:
    #  replSetName: RS-rsname-0
    
  4. Свържете се с основната и променете версията на схемата:
    use admin;
    var schema = db.system.version.findOne({"_id" : "authSchema"});
    schema.currentVersion = 3;
    db.system.version.save(schema)
    
  5. Отменете промените във файла mongodb.conf в стъпка 3 по-горе и рестартирайте MongoDB.
  6. Рестартирайте MongoDB на другите възли от набора от реплики и се уверете, че наборът от реплики е здрав. След като това стане, всички потребители, създадени в системата, ще бъдат потребители на MongoDB-CR. Можете да потвърдите това, като изпълните следната команда:
    db.system.users.find().pretty();
    

Имайте предвид обаче, че това трябва да бъде само временно решение. По-сигурното дългосрочно решение е да надстроите вашия MongoDB сървър, за да използвате модела SCRAM-SHA1. След като сте готови да надстроите, изпълнете следния скрипт, за да надстроите версията на схемата на вашите потребители до SCRAM-SHA1:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Автоматизация и управление на бази данни с отворен код в облака - обявяване на ClusterControl 1.6

  2. 3 начина за сортиране на документи в MongoDB

  3. MongoDB точка (.) в името на ключа

  4. В MongoDB mapreduce, как мога да изгладя обекта със стойности?

  5. spring-data-mongo - незадължителни параметри на заявката?