Encontré la descripción general contenida en este artículo incluso más útil que la actual documentación de MySQL por describir el panorama general de cómo se otorgan o niegan los privilegios de MySQL.
La esencia del artículo de descripción general es que los privilegios están controlados por una serie de tablas de permisos cada vez más detalladas en mysql
base de datos:mysql.user
, mysql.db
, mysql.host
, mysql.tables_priv
, mysql.columns_priv
, mysql.procs_priv
. La regla general es que un valor "Y" para un privilegio en una tabla más detallada invalida un valor "N" en una tabla más detallada. Entonces, la estrategia recomendada es comenzar negando la mayoría de los privilegios en el user
(que brinda el control más tosco) y luego realice solo las anulaciones específicas que desee en las tablas más detalladas.
En particular, existe un privilegio llamado SHOW_DATABASES
que está determinado por el Show_db_priv
columna en mysql.user
mesa; querrá configurar esto en "N" para el usuario en cuestión (y como se describe anteriormente, es posible que también desee configurar la mayoría de los otros permisos en la tabla de usuarios en "N") y luego otorgar solo los privilegios que el usuario realmente necesita en mysql.db
o mysql.tables_priv
mesa o lo que sea apropiado para su caso particular.