Našel jsem přehled obsažený v tento článek ještě užitečnější než skutečná dokumentace MySQL pro popis celkového obrazu toho, jak jsou udělována nebo odepírána oprávnění MySQL.
Podstatou článku s přehledem je, že oprávnění jsou řízena řadou stále jemnějších tabulek oprávnění v mysql databáze:mysql.user , mysql.db , mysql.host , mysql.tables_priv , mysql.columns_priv , mysql.procs_priv . Obecným pravidlem je, že hodnota "Y" pro privilegium v jemnozrnnější tabulce převažuje nad hodnotou "N" v jemnější tabulce. Doporučená strategie je tedy začít odepřením většiny oprávnění v user tabulka (která poskytuje nejhrubší kontrolu) a poté proveďte pouze konkrétní přepsání, která chcete v jemnějších tabulkách.
Konkrétně se jedná o privilegium zvané ZOBRAZIT_DATABÁZE
který je určen Show_db_priv ve sloupci mysql.user stůl; toto budete chtít nastavit na "N" pro daného uživatele (a jak je popsáno výše, možná budete chtít nastavit i většinu ostatních oprávnění v uživatelské tabulce na "N") a poté udělit pouze ta oprávnění, která uživatel skutečně potřebuje v mysql.db nebo mysql.tables_priv stůl nebo cokoliv, co by bylo vhodné pro váš konkrétní případ.