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

mongodb позволява връзка за гости дори когато е активирано удостоверяване

Да, по принцип можете да се свържете без удостоверяване, но не можете да направите почти нищо. можете да стартирате db.serverBuildInfo()

db.version()

db.adminCommand({ping:1})

db.adminCommand({whatsmyuri:1})

db.adminCommand({features:1})

например, може би някои други команди.

Това, което изглежда малко неприятно за мен, е, че мога да бягам:

for(var i=0;i++<20000;){db.adminCommand({forceerror:1})}

Което генерира малко дневник.

Проверих източниците и можете да видите, че това поведение е вид грешка. Източниците на стартиране на обвивката са в:https://github.com/mongodb/mongo/blob/master/src/mongo/shell/dbshell.cpp

По принцип има два вида тестове, които се изпълняват срещу стойностите на параметрите, дадени в аргументите за парола и потребителско име за mongoshell. Стартирането проверява кога сте предоставили параметър --password и не сте написали парола след това. Има и проверка, когато не сте посочили да стартирате без db и сте посочили потребителско име, което е по-дълго от 0, отколкото ще се опита да удостовери (проверете ред 1043)

if (!nodb && username.size()) .

Но това е всичко. Ако изобщо не посочите идентификационни данни, изглежда, че ще се свърже без дори да се опита да удостовери. Предполагам, че във фазата на инициализация трябва да се провери дали процесът, при който се свързваме, работи с удостоверяване и принудително да се изключи удостоверяването, ако е необходимо.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Създаване на монго изглед, който зависи от текущото време

  2. Как да намеря прилика в документно поле MongoDB?

  3. 2 начина за изтриване на база данни в MongoDB

  4. Текущата топология не поддържа сесия

  5. Използване на параметър maxTimeMS със заявки за агрегиране на Mongo 2.6 и Pymongo 2.7.1