sql >> Databáze >  >> NoSQL >> MongoDB

Selhání ověření při pokusu o uložení do mongodb

Kde, tedy v jaké databázi jste uživatele vytvořili? Uživatelé se obvykle vytvářejí v databázi admin . Když se připojujete k MongoDB, měli byste vždy zadat ověřovací databázi a databázi, kterou chcete používat.

Výchozí hodnoty jsou trochu matoucí a nejsou ve skutečnosti konzistentní. Přehled naleznete v této tabulce:

+----------------------------------------------------------------------------------------+
|Connection string                                           | Authentication | Current  |
|                                                            | database       | database |
+----------------------------------------------------------------------------------------+
|mongo -u <...> -p <...> --authenticationDatabase admin myDB |     admin      |   myDB   |
|mongo -u <...> -p <...> myDB                                |     myDB       |   myDB   |
|mongo -u <...> -p <...> --authenticationDatabase admin      |     admin      |   test   |
|mongo -u <...> -p <...> localhost:27017                     |     test       |   test   |
|mongo -u <...> -p <...> --host localhost:27017              |     admin      |   test   |
|mongo -u <...> -p <...>                                     |     admin      |   test   |
+----------------------------------------------------------------------------------------+

Pokud chcete použít řetězec připojení ve formátu URI, odpovídal by těmto:

mongodb://<username>:<password>@hostname/myDB?authSource=admin
mongodb://<username>:<password>@hostname/myDB
mongodb://<username>:<password>@hostname?authSource=admin
mongodb://<username>:<password>@hostname

Předpokládám, že jste uživatele vytvořili v admin databáze, ale protože při připojování nezadáte authenticationDatabase, Mongo ji nastaví jako výchozí mydatabase kde selže, protože uživatel v databázi mydatabase neexistuje .




  1. Jak by se Redis dozvěděl, zda má vracet data z mezipaměti nebo čerstvá data z DB

  2. Redis:rozprostřít zpravodajské kanály v seznamu nebo seřazené sadě?

  3. MongoDB $setIntersection

  4. Mongodb:operátor $in vs mnoho jednotlivých dotazů