Začal jsem používat MongoDB s ověřováním. Podle dokumentace jsem použil výjimku localhost k vytvoření administrátora s jedinou rolí userAdminAnyDatabase . To vše dobře dopadlo. Když spustím klienta „mongo“ a autorizuji proti adminovi databáze po použití že databázi dostanu číslo 1 označující, že autorizace byla úspěšná. Jakýkoli příkaz, který se pokusím provést, však způsobí „neoprávněnou“ chybu, a to i při pokusu o zobrazení kolekcí v databázi správce, proti kterým jsem se právě autorizoval.
Může mi někdo říct, proč tomu tak je a jak to mohu opravit? Momentálně běžím bez ověření, dokud to neopravím.
Přijatá odpověď:
userAdminAnyDatabase
role (a userAdmin
role, které je rozšířením) jednoduše dává vašemu uživateli oprávnění číst a zapisovat do system.users
kolekce pro správu uživatelů databáze. Nedovoluje uživateli číst nebo zapisovat do skutečných kolekcí databáze. K tomu musíte udělit read
nebo readWrite
role.
Viz Role uživatelských oprávnění v MongoDB a Přidání uživatele do databáze.