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
CAMPO | TIPO | POR DEFECTO |
Host | char(60) | |
User | char(16) | |
Password | char(16) | |
Select_priv | enum(‘N’,’Y’) | N |
Insert_priv | enum(‘N’,’Y’) | N |
Update_priv | enum(‘N’,’Y’) | N |
Delete_priv | enum(‘N’,’Y’) | N |
Create_priv | enum(‘N’,’Y’) | N |
Drop_priv | enum(‘N’,’Y’) | N |
Reload_priv | enum(‘N’,’Y’) | N |
Shutdown_priv | enum(‘N’,’Y’) | N |
Process_priv | enum(‘N’,’Y’) | N |
File_priv | enum(‘N’,’Y’) | N |
Grant_priv | enum(‘N’,’Y’) | N |
References_priv | enum(‘N’,’Y’) | N |
Index_priv | enum(‘N’,’Y’) | N |
Alter_priv | enum(‘N’,’Y’) | N |
CAMPO | TIPO | POR DEFECTO |
Host | char(60) | |
Db | char(32) | |
Select_priv | enum(‘N’,’Y’) | N |
Insert_priv | enum(‘N’,’Y’) | N |
Update_priv | enum(‘N’,’Y’) | N |
Delete_priv | enum(‘N’,’Y’) | N |
Create_priv | enum(‘N’,’Y’) | N |
Drop_priv | enum(‘N’,’Y’) | N |
Grant_priv | enum(‘N’,’Y’) | N |
References_priv | enum(‘N’,’Y’) | N |
Index_priv | enum(‘N’,’Y’) | N |
Alter_priv | enum(‘N’,’Y’) | N |
CAMPO | TIPO | POR DEFECTO |
Host | char(60) | |
Db | char(32) | |
User | char(16) | |
Select_priv | enum(‘N’,’Y’) | N |
Insert_priv | enum(‘N’,’Y’) | N |
Update_priv | enum(‘N’,’Y’) | N |
Delete_priv | enum(‘N’,’Y’) | N |
Create_priv | enum(‘N’,’Y’) | N |
Drop_priv | enum(‘N’,’Y’) | N |
References_priv | enum(‘N’,’Y’) | N |
Index_priv | enum(‘N’,’Y’) | N |
Alter_priv | enum(‘N’,’Y’) | N |
- 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 user, host o db, haremos referencia a cualquier usario, servidor o base de datos. Conseguiremos el mismo efecto poniendo el símbolo % en el campo.