sql >> Database teknologi >  >> RDS >> Mysql

MySQL:Hvordan undgår man, at en bruger overhovedet ser, at jeg har andre DB'er og giver udvalgt adgang til én visning på én DB?

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.



  1. Find og fjern dublerede rækker med to kolonner

  2. PHP/MySQL indsæt række og få 'id'

  3. Hvordan søger jeg efter navne, der starter med A i MySQL?

  4. mysql - FEJL 1064 (42000) ved brug af nøgleord som kolonnenavn