Jak vytvořit uživatele a přidat roli MongoDB
MongoDB Vytvořit uživatele správce
Vytvoření správce uživatelů v MongoDB se provádí pomocí metody createUser. Následující příklad ukazuje, jak to lze provést.
db.createUser( { user: "Guru99", pwd: "password", roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
Vysvětlení kódu:
- Prvním krokem je zadání „uživatelského jména“ a „hesla“, které je třeba vytvořit.
- Druhým krokem je přiřazení role uživateli. Protože to musí být správce databáze, v tom případě jsme přiřadili roli „userAdminAnyDatabase“. Tato role umožňuje uživateli mít administrátorská oprávnění ke všem databázím v MongoDB.
- Parametr db určuje databázi správce, což je speciální Meta databáze uvnitř MongoDB který uchovává informace pro tohoto uživatele.
Pokud je příkaz úspěšně proveden, zobrazí se následující výstup:
Výstup:
Výstup ukazuje, že byl vytvořen uživatel s názvem „Guru99“ a tento uživatel má oprávnění ke všem databázím v MongoDB.
MongoDB Vytvořit uživatele pro jednu databázi
Pro vytvoření uživatele, který bude spravovat jednu databázi, můžeme použít stejný příkaz jako výše, ale musíme použít pouze volbu „userAdmin“.
Následující příklad ukazuje, jak to lze provést;
db.createUser( { user: "Employeeadmin", pwd: "password", roles:[{role: "userAdmin" , db:"Employee"}]})
Vysvětlení kódu:
- Prvním krokem je zadání „uživatelského jména“ a „hesla“, které je třeba vytvořit.
- Druhým krokem je přiřazení role uživateli, který je v tomto případě, protože se musí jednat o správce databáze, přiřazen k roli „userAdmin“. Tato role umožňuje uživateli mít administrátorská oprávnění pouze k databázi zadané ve volbě db.
- Parametr db určuje databázi, ke které by měl mít uživatel oprávnění správce.
Pokud je příkaz úspěšně proveden, zobrazí se následující výstup:
Výstup:
Výstup ukazuje, že byl vytvořen uživatel s názvem „Employeeadmin“ a tento uživatel má oprávnění pouze k databázi „Employee“.
Správa uživatelů
Nejprve pochopte role, které musíte definovat. K dispozici je celý seznam rolí MongoDB. Například existuje role „čtení“, která umožňuje pouze přístup k databázím pouze pro čtení, a pak role „čtení a zápis“, která poskytuje přístup pro čtení a zápis do databáze, což znamená, že uživatel může zadat vkládání, mazání a aktualizovat příkazy pro kolekce v této databázi.
db.createUser( { user: "Mohan", pwd: "password", roles:[ { role: "read" , db:"Marketing"}, { role: "readWrite" , db:"Sales"} } ] })
Výše uvedený úryvek kódu ukazuje, že byl vytvořen uživatel Mohan, kterému je přiřazeno více rolí ve více databázích. Ve výše uvedeném příkladu je mu uděleno oprávnění pouze pro čtení do databáze „Marketing“ a oprávnění pro čtení a zápis do databáze „Prodej“.