Seguridad en Mysql

Todo el sistema de permisos MySQL lo guarda en una base de datos llamada mysql, la cuál se componen de cinco tablas: host, user, db, tables_priv, colums_priv.

La tabla user contiene información sobre los usuarios, desde que máquinas pueden acceder a nuestro servidor MySQL, su clave y de sus diferentes permisos. La tabla host nos informa sobre que máquinas podran acceder a nuestro sistema, así como a las bases de datos que tendrán acesso y sus diferentes permisos. Finalmente, las tablas db, tables_priv, columns_priv nos proveen de un control individual de las bases de datos, tablas y columnas (campos).

Tabla user

CAMPOTIPOPOR DEFECTO
Hostchar(60)
Userchar(16)
Passwordchar(16)
Select_privenum(‘N’,’Y’)N
Insert_privenum(‘N’,’Y’)N
Update_privenum(‘N’,’Y’)N
Delete_privenum(‘N’,’Y’)N
Create_privenum(‘N’,’Y’)N
Drop_privenum(‘N’,’Y’)N
Reload_privenum(‘N’,’Y’)N
Shutdown_privenum(‘N’,’Y’)N
Process_privenum(‘N’,’Y’)N
File_privenum(‘N’,’Y’)N
Grant_privenum(‘N’,’Y’)N
References_privenum(‘N’,’Y’)N
Index_privenum(‘N’,’Y’)N
Alter_privenum(‘N’,’Y’)N

Tabla host

CAMPOTIPOPOR DEFECTO
Hostchar(60)
Dbchar(32)
Select_privenum(‘N’,’Y’)N
Insert_privenum(‘N’,’Y’)N
Update_privenum(‘N’,’Y’)N
Delete_privenum(‘N’,’Y’)N
Create_privenum(‘N’,’Y’)N
Drop_privenum(‘N’,’Y’)N
Grant_privenum(‘N’,’Y’)N
References_privenum(‘N’,’Y’)N
Index_privenum(‘N’,’Y’)N
Alter_privenum(‘N’,’Y’)N

Tabla db

CAMPOTIPOPOR DEFECTO
Hostchar(60)
Dbchar(32)
Userchar(16)
Select_privenum(‘N’,’Y’)N
Insert_privenum(‘N’,’Y’)N
Update_privenum(‘N’,’Y’)N
Delete_privenum(‘N’,’Y’)N
Create_privenum(‘N’,’Y’)N
Drop_privenum(‘N’,’Y’)N
References_privenum(‘N’,’Y’)N
Index_privenum(‘N’,’Y’)N
Alter_privenum(‘N’,’Y’)N

He aquí una breve descripción de los diferentes permisos:

  • Select_priv: Permite utilizar la sentencia SELECT
  • Insert_priv: Permite utilizar la sentencia INSERT
  • Update_priv: Permite utilizar la sentencia UPDATE
  • Delete_priv: Permite utilizar la sentencia DELETE
  • Create_priv: Permite utilizar la sentencia CREATE o crear bases de datos
  • Drop_priv: Permite utilizar la sentencia DROP o eliminar bases de datos
  • Reload_priv: Permite recargar el sistema mediante mysqladmin reload
  • Shutdown_priv: Permite parar el servidor mediante
  • mysqladmin: Permite parar el servidor mediantemysqladmin shutdown
  • Process_priv: Permite manejar procesos del servidor
  • File_priv: Permite leer y escribir ficheros usando comando como SELECT INTO OUTFILE y LOAD DATA INFILE
  • Grant_priv: Permite otorgar permisos a otros usuarios
  • Index_priv: Permite crear o borrar índices
  • Alter_priv: Permite utilizar la sentencia ALTER TABLE

Si dejamos en blanco los campos userhost o db, haremos referencia a cualquier usario, servidor o base de datos. Conseguiremos el mismo efecto poniendo el símbolo % en el campo.