MongoDB Vytvořit uživatele správce
Vytvoření správce uživatele v MongoDB se provádí pomocí metody createUser. Následující příklad ukazuje, jak toho lze dosáhnout.
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 takovém případě jsme přidělili roli „userAdminAnyDatabase“. Tato role umožňuje uživateli mít oprávnění správce ke všem databázím v MongoDB.
- Parametr db určuje databázi administrátorů, což je speciální databáze Meta v rámci MongoDB, která obsahuje informace o tomto uživateli.
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 že má oprávnění ke všem databázím v MongoDB.
MongoDB Vytvořit uživatele pro jednu databázi
K vytvoření uživatele, který bude spravovat jednu databázi, můžeme použít stejný příkaz, jak je uvedeno výše, ale musíme použít pouze možnost „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 je to správce databáze, přiřazen k roli „userAdmin“. Tato role umožňuje uživateli mít oprávnění správce pouze k databázi uvedené 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 že má oprávnění pouze v databázi „Zaměstnanec“.
Správa uživatelů
Nejprve pochopte role, které musíte definovat. V MongoDB je k dispozici celý seznam rolí. Například existuje „role pro čtení“, která umožňuje pouze přístup k databázím pouze pro čtení, a dále role „pro čtení“, která poskytuje přístup ke čtení a zápisu do databáze, což znamená, že uživatel může vydávat vložení, mazání a aktualizovat příkazy pro sbírky v této databázi.
db.createUser({user: "Mohan",pwd: "password",roles:[{role: "read" , db:"Marketing"},role: "readWrite" , db:"Sales"}}]})
Výše uvedený fragment kódu ukazuje, že je vytvořen uživatel jménem 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í k databázi „Marketing“ a oprávnění ke čtení „Databáze“.