MongoDB je databáze orientovaná na dokumenty napříč platformami, díky které je ukládání a vyhledávání dat rychlé a snadné. Databáze používá pro dokumenty strukturu podobnou JSON, kterou znají především moderní aplikace.
MongoDB používá sbírky a rukopisy, přičemž dokumenty se skládají z párů klíč-hodnota, což je základní jednotka dat v MongoDB. Naproti tomu kolekce obsahují funkce a dokumenty ekvivalentní tabulkám relačních databází.
Vytvořte nového uživatele v MongoDB
Pro přidání nových uživatelů do systému poskytuje MongoDB interní techniku známou jako db.createUser(). Na rozdíl od tradičních databázových systémů jsou uživatelé MongoDB vázáni na lokální databázi nazvanou Authentication Database. Nejsou tedy globálně svázány, jako běžné databáze SQL.
Navíc autentizační databáze a jméno uživatele slouží jako jedinečný identifikátor. Pokud jsou tedy dva uživatelé vytvořeni v různých databázích, ale sdílejí stejná jména, jsou identifikováni jako dva samostatní uživatelé. Pokud tedy chcete vytvořit jednoho uživatele s oprávněními k více databázím, měli byste umožnit jednomu uživateli mít práva/role k příslušné databázi místo toho, abyste uživatele mnohokrát budovali v různých databázích.
Příklad:
db.createUser({ user:"Foss", pwd:"password", role:[{role:"userAdminAnyDatabase" , db:"admin"}]})
Příkazy správy uživatelů
Jméno/názvy | Popis |
---|---|
createUser | Tato metoda vytvoří nového uživatele. |
dropAllUsersFromDatabase | Odstraní všechny uživatele z databáze. |
dropUser | Uděluje uživateli úkol a jeho oprávnění. |
grantRolesToUser | Role a související oprávnění jsou přiřazeny uživateli. |
revokeRolesFromUser | Odebere roli uživatele. |
updateUser | Tato metoda se používá k aktualizaci dat uživatele. |
usersInfo | Tato metoda vrací informace o dodaných uživatelích. |
Přidání uživatele
Při přidávání uživatele do zadané databáze použijte metodu „db.createUser()“. Je důležité poznamenat, že přidávání uživatelů pomocí voleb je mnohem jednodušší než vkládání uživatelského dokumentu do nerelační databáze.
Příklad:
použijte foss // zadejte DBdb.createUser( { user:"fosslinux", pwd:passwordPrompt(), // nebo heslo čistého textu, chcete-li role:[ { role:"read", db:"foss" , { role:"číst", db:"články" }, { role:"číst", db:"návody" }, { role:"čístWrite", db:"příručky výukových programů" } ] })
Jakmile připojíte instanci MongoDB ve výše uvedeném příkladu, můžete ji připojit k foss DB a spustit příkaz db.createUser(). Použitá databáze bude fungovat jako Uživatelská autentizační databáze.
Heslo a uživatelské jméno jsou uvedeny v dokumentu, který obsahuje volání naší metody, jako páry klíč–hodnota. Použití rolí řídí přístup k databázím. Uživatel musí mít roli pro přístup k jakékoli databázi, dokonce i k vlastní ověřovací databázi. Uživateli je také umožněn přístup k dalším databázím v systému pomocí rolí. Práva uživatele tedy nejsou omezena na jeho autentizační databázi. To umožňuje uživatelům mít různá oprávnění napříč mnoha databázemi podle potřeby. Princip nejmenšího oprávnění umožňuje uživatelům udržovat rozsah přístupu k databázi co nejmenší.
Jak vytvořit administrátora v MongoDB
Vytvoření uživatele admin v MongoDB se provádí pomocí metody db.createUser(), která umožňuje vytvořit uživatele. Po vytvoření uživatele však musíte přiřadit role správce. Tyto role dávají uživateli oprávnění správce.
Vytvořte uživatele pro jednu databázi v MongoDB
Pokud chceme vytvořit uživatele, který může pracovat pouze s jednou databází, můžeme použít podobný příkaz jako výše, ale musíme použít volbu „userAdmin“ jen jednou.
Příklad:
db.createUser({ user:"Fosslinux", pwd:"password", role:[{role:"userAdmin" , db:"Foss"}]})
Rozdělení kódu:
- V první řadě je třeba zadat „uživatelské jméno“ a „heslo“, které mají být vytvořeny.
- Přidělte roli tomuto uživateli, což je správce databáze; toto je přiřazeno roli „user admin“, protože tato role umožňuje uživateli mít administrátorská oprávnění pouze k databázi specifikované v DB
- Parametr DB nakonec nastaví databázi, ke které by měl mít uživatel práva správce.
Správa uživatelů
Ke správě uživatelů je třeba porozumět rolím, které je třeba definovat, protože MongoDB má celý seznam funkcí, jako je role pro čtení a role pro čtení a zápis. Příkaz „read role“ umožňuje přístup k databázím pouze pro čtení. „Role čtení a zápisu“ poskytuje přístup pro čtení a zápis do databáze; to znamená, že uživatel může vydávat příkazy pro aktualizaci, vkládání a odstraňování pro kolekce v dané databázi.
Příklad:
Výše uvedený příklad ukazuje, že uživatel známý jako Foss je vytvořen a má přiřazeno několik rolí ve více databázích. Ve stejném modelu má Foss oprávnění pouze ke čtení v databázi „Výukové programy“ a oprávnění ke čtení a zápisu v databázi „Průvodci“.
Přidávání rolí do MongoDB
Role udělují uživatelům přístup ke zdrojům MongoDB. MongoDB navíc poskytuje několik vestavěných rolí, které umožňují správcům řídit přístup k systému MongoDB. Pokud však tyto role nemohou popsat požadovanou sadu oprávnění, lze vytvořit nové role v konkrétní databázi. S výjimkou funkcí vytvořených v databázi správce může role zahrnovat pouze práva, která se vztahují k její databázi, a práva zděděná od jiných rolí.
Role definovaná v databázi správce může obsahovat práva platná pro databázi správce, jiné databáze nebo prostředek clusteru a může dědit role z jiných databází. Chcete-li vytvořit novou roli, použijte „db.createRole()“ a zadejte pole práv a pole zděděných rolí.
MongoDB definuje role jedinečně kombinací názvu databáze s názvem role. Každá role je omezena na databázi, kterou vytvoříte, ale MongoDB ukládá všechny informace o roli v kolekci adminSystemRoles v databázi správce. Například akce kreativní role a role udělení na zdroji databáze musí zajistit vytvoření a udělení rolí v databázi. GrantRole určuje oprávnění pro nové role a role, které se mají zdědit. User AdminAnyDatabase a Built-in role user admin poskytují akce CreateRole a udělování rolí na jejich příslušných zdrojích.
Chcete-li vytvořit roli se zadanými omezeními autentizace, je nutné nastavit akci AuthenticationRetrictions na zdroj databáze, který je následně vytvořen.
Metoda db.grantRole to User () přebírá následující argumenty;
Parametr | Zadejte | Popis |
---|---|---|
Uživatel | Řetězec | Obsahuje jméno uživatele, kterému mají být přiděleny role. |
Role | Pole | Obsahuje řadu dalších rolí, které je možné udělit uživateli. |
Napište znepokojení | Dokument | Je volitelný a zaměřený na úpravu příkazu. Také trvá stejná pole s příkazem get last error. |
Parametr roles může specifikovat uživatelem definované i vestavěné funkce, čehož lze dosáhnout výběrem role s jejím názvem. Toho je dosaženo připojením k mongodu (primární proces démona pro systém MongoDB, který zpracovává požadavky na data, provádí operace správy na pozadí a spravuje přístup k datům). Případně mongos (který je zodpovědný za navázání spojení mezi klientskými aplikacemi a sdíleným clusterem) s právy uvedenými v části požadavků. Například můj uživatelský admin vytvořený v povolení řízení přístupu může vytvářet role v admin a dalších databázích.
Příkazy pro správu rolí
Jméno | Popis |
---|---|
createRole | Vytvoří roli a řekne, co může dělat. |
dropRole | Odebere roli, která byla nastavena uživatelem. |
dropAllRolesFromDatabase | Odebere všechny role, které uživatelé nastavili z databáze. |
grantPrivilegesToRole | přiděluje oprávnění roli, kterou si uživatel vybere. |
grantRolesToRole | říká, od kterých rolí může uživatelsky definovaná role zdědit oprávnění. |
invalidateUserCache | Když použijete invalidateUserCache, dojde k vyprázdnění mezipaměti uživatelských informací, jako jsou přihlašovací údaje a role. |
revokePrivilegesFromRole | odebere oprávnění z uživatelsky definované role, která je má. |
revokeRolesFromRole | odstraní zděděné role z uživatelem definované role, kterou nechcete. |
rolesInfo | vrací informace o roli nebo rolích, které chcete. |
updateRole | Aktualizuje roli, která byla nastavena uživatelem. |
Závěr
Databáze MongoDB, která umožňuje snadné a rychlé ukládání a získávání dat, umožňuje vytvořit uživatele pomocí příkazu „db.createUser()“. Na druhou stranu příkaz „AdminAnyDatabase“ poskytuje uživatelům všechna oprávnění pro přístup k DB v roli správce. Tento článek šel o krok navíc a ilustroval, jak udělovat role a práva. Doufáme, že vám to pomůže. Pokud ano, nezapomeňte zanechat poznámku v sekci komentářů níže.