Ver Mensaje Individual
  #10  
Antiguo 12-11-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
JorgeBec comentó:
Ya me esta cayendo el 20
O eres de México o esta es una expresión sorprendentemente universal

Espero no confundirte con lo que ahora te voy a decir: ya que estás leyendo acerca del comando GRANT te recomiendo que de una vez leas las secciones 4.2.5 a 4.2.11 del manual de mysql que explican con detalle cómo funcionan los derechos en mysql.

La verdad es que el comando GRANT siempre me ha parecido una tanto obscuro y confuso y realmente no es difícil entender las tablas de derechos.

Un brevísimo resumen:

La tabla principal es la tabla 'users'. Si la combinación (usuario, host) no se encuentra en dicha tabla, se deniega acceso al servidor. Aquí se asignan derechos globales sobre todas las bases de datos pero se recomiendo inhabilitar aquí todos los derechos.

La tabla 'db' especifica qué usuarios, desde qué hosts y a qué bases pueden acceder. Los derechos aquí asignados son válidos para la base de datos que se especifique.

Si no se especifica el campo host de la tabla 'db' entonces los derechos se leen de la tabla 'host', esto es, si en 'db' hay un registro del tipo:

(host = '', db='tu base', user='fulano')

significa que fulano puede conectarse a la base 'tu base' pero sus derechos dependen del host desde el cual se conecte de manera que en la tabla 'host' puedes tener varias entradas para 'tu base' especificando, por ejemplo, que desde tal dirección puede editar y borrar registros pero desde otras sólo leer registros.

Las otras tablas, Tables_priv y Columns_priv te sirven para ser aún más específico en los derechos. Tables_priv restringe el acceso sólo a determinadas tablas de la base y Columns_priv sólo a ciertos campos de determinada tabla.

// Saludos y buena lectura!
Responder Con Cita