Úvod
Primární funkcí databáze je ukládat informace strukturovaným způsobem, aby byl umožněn snadný přístup k těmto informacím. Mít mnoho uživatelů s oprávněním k přístupu a práci na vašem serveru MySQL se může stát bezpečnostním problémem.
Krátká sada dotazů v klientovi MySQL vám může poskytnout cenné informace, které vám pomohou předejít potenciálním problémům. Pomocí příkazů uvedených v tomto kurzu se dozvíte, jak vypsat seznam všech uživatelských účtů na serveru MySQL.
Předpoklady
- Příkazový řádek/okno terminálu
- Nainstalováno MySQL nebo MariaDB
- Uživatel s sudo nebo root privilegia
Jak získat přístup k MySQL jako root
Přistupujte k serveru MySQL jako root zadáním následujícího příkazu do terminálu:
sudo mysql --user=root mysql -p
nebo:
sudo mysql -u root -p
-p
Tato možnost je povinná pouze v případě, že máte předdefinované heslo pro uživatele root. Pokud není definováno žádné heslo, použijte příkaz bez -p
možnost.
Výstup výše ukazuje, že jsme získali přístup ke klientovi MySQL jako root uživatel.
Nyní můžete spustit dotaz MySQL a získat informace z mysql.user databáze.
Jak zobrazit všechny uživatele MySQL
Následující příkaz uvádí seznam uživatelských jmen, která mají přístup k serveru:
SELECT user FROM mysql.user;
Tento příkaz dává MySQL pokyn k vytvoření tabulky. Systém získá informace od uživatele ve sloupci mysql.user databáze.
Výstup v tomto příkladu ukazuje tabulku se čtyřmi řádky:
Seznam, který jsme obdrželi, má omezenou hodnotu. Chcete-li získat podrobnější přehled o uživatelích MySQL a jejich oprávněních, můžeme rozšířit parametry vyhledávání a přidat další sloupce.
Jak vypsat mysql.user Databázová pole
Před rozbalením dotazu uveďme seznam polí dostupných v mysql.user databáze. Následující příkaz zobrazí seznam všech dostupných sloupců:
desc mysql.user;
Možnosti v pole sloupec představuje informace, které můžeme požadovat od mysql.user databáze.
Je možné zkombinovat několik možností v jednom příkazu a získat tak podrobné informace o uživateli.
Jak zobrazit informace o uživateli MySQL
Následující dotaz poskytuje tabulku s uživatelem , Hostitel a řetězec_autentizace sloupce:
SELECT User, Host, authentication_string FROM mysql.user;
Dotaz přidá další dva sloupce do sloupce Uživatel a poskytuje cenné informace, jako je heslo uživatele a název hostitele.
Jak uvést pouze unikátní uživatele MySQL
Další užitečnou možností je odstranit uživatelská jména MySQL, která se objevují ve více řádcích. Chcete-li zobrazit pouze jedinečná uživatelská jména MySQL, zadejte následující příkaz:
SELECT DISTINCT User FROM mysql.user;
Výstup odstraní duplicitní řádky MySQL a zobrazí konkrétní uživatelská jména pouze jednou.
Zobrazit aktuálního uživatele MySQL
Použijte user()
nebo current_user()
funkce pro získání podrobností o aktuálním uživateli MySQL:
SELECT user();
Nebo:
SELECT current_user();
V obou případech výstup ukazuje, že aktuální uživatel MySQL je [chráněn e-mailem] .
Zobrazit přihlášené uživatele MySQL
V každém okamžiku můžete zkontrolovat uživatele, kteří jsou aktuálně přihlášeni k databázovému serveru MySQL. Tato funkce poskytuje neocenitelný přehled při sledování vašeho serveru MySQL z hlediska neoprávněného použití.
Zadejte tento dotaz pro zobrazení seznamu aktuálně přihlášených uživatelů MySQL:
SELECT user, host,db, command FROM information_schema.processlist;
Výstup obsahuje seznam přihlášených uživatelů, databázi a spouštěný příkaz.