Jeg har fundet oversigten indeholdt i denne artikel endnu mere nyttig end den faktiske MySQL-dokumentation for at beskrive det store billede af, hvordan MySQL-privilegier tildeles eller nægtes.
Kernen i oversigtsartiklen er, at privilegier styres af en række mere og mere detaljerede tilladelsestabeller i mysql database:mysql.user , mysql.db , mysql.host , mysql.tables_priv , mysql.columns_priv , mysql.procs_priv . Den generelle regel er, at en "Y"-værdi for et privilegium i en mere finkornet tabel tilsidesætter en "N"-værdi i en mere grovkornet tabel. Så den anbefalede strategi er at starte med at nægte de fleste privilegier i user tabel (som giver den groveste kontrol), og lav så kun de specifikke tilsidesættelser, som du ønsker i de mere finkornede tabeller.
Især er der et privilegium kaldet SHOW_DATABASES
som bestemmes af Show_db_priv kolonnen i mysql.user bord; du ønsker at sætte dette til "N" for den pågældende bruger (og som beskrevet ovenfor, vil du måske også indstille de fleste andre tilladelser i brugertabellen til "N") og derefter kun give de privilegier, som brugeren faktisk behov i mysql.db eller mysql.tables_priv tabel eller hvad der nu ville være passende for dit særlige tilfælde.