5.2.5. Tipos de privilegios

MySQL proporciona una gran variedad de tipos de privilegios.

•    Privilegios relacionados con tablas: alter, create, delete, drop, index, insert, select, update

•    Algunos privilegios administrativos: file, proccess, super reload, replication client, grant option, shutdown

•    Algunos privilegios para fines diversos: lock tables, show databases, create temporary tables.

El privilegio all otorga todos los privilegios exceptuando el privilegio grant option. Y el privilegio usage no otorga ninguno, lo cual es útil cuando se desea, por ejemplo, simplemente cambiar la contraseña:

grant usage
on *.*
to visitante@localhost identified by ´secreto´;

 

 

Tipos de privilegios en MySQL

Tipo de privilegio Operación que permite
all [privileges] Otorga todos los privilegios excepto grant option
usage No otorga ningún privilegio
alter Privilegio para alterar la estructura de una tabla
create Permite el uso de create table
delete Permite el uso de delete
drop Permite el uso de drop table
index Permite el uso de index y drop index
insert Permite el uso de insert
select Permite el uso de select
update Permite el uso de update
file Permite le uso de select . . . into outfile y load data infile
process Permite el uso de show full procces list
super Permite la ejecución de comandos de supervisión
reload Permite el uso de flush
replication client Permite preguntar la localización de maestro y esclavo
replication slave Permite leer los binlog del maestro
grant option Permite el uso de grant y revoke
shutdown Permite dar de baja al servidor
lock tables Permite el uso de lock tables
show tables Permite el uso de show tables
create temporary tables Permite el uso de create temporary table

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

En entornos grandes, es frecuente encontrarse en la necesidad de delegar el trabajo de administrar un servidor de bases de datos para que otros usuarios, además del administrador, puedan responsabilizarse de otorgar privilegios sobre una base de datos particular. Esto se puede hacer en MySQL con el privilegio grant option:

mysql> grant all, grant option
-> on demo.*
-> to operador@localhost;

El mismo resultado se puede obtener con la siguiente sintaxis alternativa:

mysql> grant all
-> on demo.*
-> to operador@localhost
-> with grant option;

 

De este modo el usuario operador podrá disponer de todos los privilegios sobre la base de datos demo, incluido el de controlar el acceso a otros usuarios.