Znalazłem przegląd zawarty w ten artykuł jeszcze bardziej przydatne niż rzeczywista dokumentacja MySQL za opisanie pełnego obrazu tego, w jaki sposób uprawnienia MySQL są przyznawane lub odmawiane.
Istotą artykułu przeglądowego jest to, że uprawnienia są kontrolowane przez szereg coraz bardziej precyzyjnych tabel uprawnień w mysql
baza danych:mysql.user
, mysql.db
, mysql.host
, mysql.tables_priv
, mysql.columns_priv
, mysql.procs_priv
. Ogólna zasada jest taka, że wartość „Y” dla przywileju w bardziej szczegółowej tabeli ma pierwszeństwo przed wartością „N” w bardziej gruboziarnistej tabeli. Tak więc zalecaną strategią jest rozpoczęcie od odmowy większości uprawnień w user
tabeli (co daje najszerszą kontrolę), a następnie w bardziej precyzyjnych tabelach dokonaj tylko określonych nadpisań, które chcesz.
W szczególności istnieje uprawnienie o nazwie SHOW_DATABASES
który jest określony przez Show_db_priv
kolumna w mysql.user
stół; będziesz chciał ustawić to na „N” dla danego użytkownika (i jak opisano powyżej, możesz również ustawić większość innych uprawnień w tabeli użytkowników na „N”), a następnie przyznać tylko uprawnienia, które użytkownik faktycznie potrzebuje w mysql.db
lub mysql.tables_priv
stół lub cokolwiek, co byłoby odpowiednie dla twojego konkretnego przypadku.