Správa uživatelů a oprávnění MySQL je velmi důležitá pro účely ověřování, autorizace a účtování. Od MySQL 8.0 nyní existují dva typy uživatelských oprávnění databáze:
- Statická oprávnění – Společná globální, schéma a administrátorská oprávnění jako SELECT, ALTER, SUPER a USAGE, zabudovaná do serveru.
- Dynamická oprávnění – novinka v MySQL 8.0. Komponenta, kterou lze za běhu registrovat a odregistrovat, což poskytuje lepší kontrolu nad globálními oprávněními. Například namísto přidělování oprávnění SUPER pouze pro účely správy konfigurace je lepší, aby konkrétnímu uživateli bylo uděleno pouze oprávnění SYSTEM_VARIABLES_ADMIN.
Vytvoření databázového schématu s příslušným uživatelem je prvním krokem k zahájení používání MySQL jako databázového serveru. Většina aplikací, které používají MySQL jako úložiště dat, vyžaduje provedení tohoto úkolu, než bude aplikace fungovat tak, jak má. Pro použití s aplikací je obvykle uživatel MySQL nakonfigurován tak, aby měl plná oprávnění (ALL PRIVILEGES) na úrovni schématu, což znamená, že uživatel databáze, který aplikace používá, má svobodu provádět jakékoli akce s přiřazenou databází.
V tomto příspěvku na blogu porovnáme a porovnáme funkce správy uživatelů databáze MySQL mezi MySQL Workbench a ClusterControl.
MySQL Workbench – Správa uživatelů databáze
Pro MySQL Workbench najdete všechny věci pro správu uživatelů v části Správa -> Správa -> Uživatel a oprávnění. Na levé straně byste měli vidět seznam stávajících uživatelů, zatímco na pravé straně je sekce konfigurace ověřování a autorizace pro vybraného uživatele:
MySQL podporuje více než 30 statických oprávnění a není snadné je pochopit a zapamatovat si obchoďák. MySQL Workbench má řadu přednastavených administrativních rolí, což je velmi užitečné při přidělování dostatečných oprávnění uživateli databáze. Pokud byste například chtěli vytvořit uživatele MySQL speciálně pro provádění činností zálohování pomocí mysqldump, můžete si vybrat roli BackupAdmin a příslušnému uživateli budou přidělena související globální oprávnění:
Chcete-li vytvořit nového uživatele databáze, klikněte na tlačítko "Přidat účet" a zadejte potřebné informace na kartě „Přihlášení“. Na kartě "Limit účtu" můžete přidat některá další omezení zdrojů. Pokud je uživatel pouze pro schéma databáze a není určen pro žádnou administrativní roli (výhradně pro použití aplikace), můžete přeskočit kartu "Administrativní role" a nakonfigurovat pouze "Oprávnění schématu".
V části "Oprávnění schématu" lze kliknutím na "Přidat položku" vybrat schéma databáze (nebo definovat odpovídající vzor). Poté stiskněte tlačítko „Vybrat VŠE“, abyste povolili všechna práva (kromě GRANT OPTION), což je podobné příkazu možnosti „ALL PRIVILEGES“:
Uživatel databáze nebude vytvořen na serveru MySQL, dokud nepožádáte změny kliknutím na tlačítko "Použít".
ClusterControl – správa uživatelů databáze a proxy
Správa databáze a uživatelů ClusterControl je o něco přímočařejší než to, co nabízí MySQL Workbench. Zatímco MySQL Workbench je přívětivější pro vývojáře, ClusterControl se více zaměřuje na to, co SysAdminy a DBA zajímají, spíše na běžné administrativní věci pro ty, kteří již znají role a oprávnění MySQL.
Chcete-li vytvořit uživatele databáze, přejděte na Spravovat -> Schémata a uživatelé -> Uživatelé -> Vytvořit nového uživatele. Zobrazí se vám následující průvodce vytvořením uživatele:
Vytvoření uživatele v ClusterControl vyžaduje, abyste vyplnili všechna potřebná pole v jednom na rozdíl od MySQL Workbench, který vyžadoval řadu kliknutí k dosažení podobných výsledků. ClusterControl také podporuje vytvoření uživatele se syntaxí "VYŽADOVAT SSL", aby byl konkrétní uživatel nucen přistupovat pouze přes šifrovací kanál SSL.
ClusterControl poskytuje agregovaný pohled na všechny uživatele databáze v clusteru, takže se nemusíte přihlašovat ke každému jednotlivému serveru, abyste hledali konkrétního uživatele:
Jednoduché přejetí myší na pole oprávnění odhalí všechna oprávnění, která byla přiřazena tohoto uživatele. ClusterControl také poskytuje seznam neaktivních uživatelů, uživatelských účtů, které nebyly použity od posledního restartu serveru:
Výše uvedený seznam nám poskytuje jasné shrnutí toho, kteří uživatelé stojí za to existovat , což nám umožňuje spravovat uživatele efektivněji. DBA se pak mohou zeptat vývojáře, zda je neaktivní uživatel databáze stále nutný, aby byl aktivní, jinak může být uživatelský účet uzamčen nebo zrušen.
Pokud máte mezi tím nástroj pro vyrovnávání zatížení ProxySQL, možná víte, že ProxySQL má vlastní správu uživatelů MySQL, která umožňuje jeho předávání. Existuje řada různých nastavení a proměnných ve srovnání s běžnými uživatelskými konfiguracemi MySQL, např. výchozí skupina hostitelů, výchozí schéma, perzistence transakcí, rychlý posun vpřed a mnoho dalších. ClusterControl poskytuje grafické uživatelské rozhraní pro správu uživatelů databáze ProxySQL, což zlepšuje zkušenosti a efektivitu správy uživatelů proxy a databáze najednou:
Při vytváření nového uživatele databáze prostřednictvím stránky pro správu ProxySQL ClusterControl automaticky vytvoří odpovídající uživatel na ProxySQL i MySQL. Při vyřazení uživatele MySQL z ProxySQL však příslušný uživatel databáze zůstane na serveru MySQL.
Výhody a nevýhody
ClusterControl podporuje více dodavatelů databází, takže získáte podobnou uživatelskou zkušenost s jinými databázovými servery. ClusterControl také podporuje vytvoření databázového uživatele na více hostitelích najednou, kde zajistí, že vytvořený uživatel existuje na všech databázových serverech v clusteru. ClusterControl má přehlednější způsob při výpisu uživatelských účtů, kde všechny potřebné informace vidíte přímo na stránce výpisu. Správa uživatelů však vyžaduje aktivní předplatné a není k dispozici v komunitní edici. Nepodporuje všechny platformy, které může MySQL provozovat, zejména pouze některé distribuce Linuxu, jako je CentOS, RHEL, Debian a Ubuntu.
Největší výhodou MySQL Workbench je, že je zdarma a lze jej používat společně se správou a administrací schémat. Je vytvořen tak, aby byl přátelštější k vývojářům a správcům databází, a má výhodu v tom, že je vytvořen a podporován týmem Oracle, který vlastní a spravuje server MySQL. Poskytuje také mnohem jasnější pokyny s popisem většiny vstupních polí, zejména v kritických částech, jako je ověřování a správa oprávnění. Přednastavená administrativní role je elegantní způsob, jak udělit uživateli sadu oprávnění na základě práce, kterou musí uživatel na serveru vykonávat. Na druhou stranu, MySQL Workbench není nástroj přátelský ke clusterům, protože každé připojení pro správu je přizpůsobeno jednomu koncovému serveru MySQL. Neposkytuje tedy centralizovaný pohled na všechny uživatele v clusteru. Nepodporuje také vytváření uživatelů s vynucením SSL.
Oba tyto nástroje nepodporují novou syntaxi dynamických oprávnění MySQL 8.0, např. BACKUP_ADMIN, BINLOG_ADMIN, SYSTEM_VARIABLES_ADMIN atd.
Následující tabulka zdůrazňuje významné funkce obou nástrojů pro snadné srovnání:
Aspekt správy uživatelů | MySQL Workbench | ClusterControl |
Podporovaný operační systém pro server MySQL |
|
|
Dodavatel MySQL |
|
|
Podpora správy uživatelů pro další software |
| |
Správa uživatelů pro více hostitelů | Ne | Ano |
Agregované zobrazení uživatelů v databázovém clusteru | Ne | Ano |
Zobrazit neaktivní uživatele | Ne | Ano |
Vytvořit uživatele pomocí SSL | Ne | Ano |
Popis oprávnění a role | Ano | Ne |
Přednastavená role správce | Ano | Ne |
Dynamická oprávnění MySQL 8.0 | Ne | Ne |
Cena | Zdarma | Pro funkce správy je vyžadováno předplatné |
Doufáme, že vám tyto blogové příspěvky pomohou určit, jaké nástroje jsou nejvhodnější pro správu vašich databází MySQL a uživatelů.