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.