MySQL Administración de usuarios

Esta es la entrada 5 de 11 en la serie: Administrar MySQL desde la línea de comandos

MySQL

MySQL presenta un esquema de seguridad refinado, flexible y basado en lista de control de accesos. Un usuario en MySQL se identifica por el login e identificador de la computadora cliente (IP, nombre), esto se basa en el principio de que el usuario Pepe que se conecta desde la oficina no tiene por que ser el mismo Pepe que se conecta desde la casa. MySQL utiliza las tablas user, db, host, tables_priv, columns_priv y procs_priv de la base de datos mysql para administrar su sistema de privelegios permitiendo definir accesos a nivel de base de datos, tablas, columnas y operaciones (select, insert, delete, update, grant). En esta guía mostraremos como crear y eliminar usuarios, establecer y revocar permisos.

Crear usuario

create user usuario [identified by 'contraseña'];
-  Donde:  usuario =  'nom-usuario'@'nom-comp', si se omite @'nom-comp' entonces 
el usuario se puede conectar al servidor mysql desde cualquier computadora cliente

- Si se omite identified by 'contraseña', entonces el usuario se puede conectar
al servidor mysql sin especificar contraseña (Método no recomendado)

Conectarse al servidor mysql (localhost)

Para más info ver: Administrar servidor MySQL – Básico

mysql -u sedlav -p

Una vez autenticado si intentamos realizar cualquier operación, el servidor mysql nos la denegará debido que no le hemos establecido privilegios al usuario sedlav

Establecer / Revocar privilegios

Si el usuario al cual le estamos estableciendo los privilegios no existe entonces el servidor mysql lo creará y le asignará los permissos correspondientes

Establecer privilegios. Sinopsis

grant tipo_priv (columnas) on base_dato.tabla to usuario[@nom-comp] 
[identified by contraseña];

Revocar privilegios. Sinopsis

revoke tipo_priv (columnas), grant option on base_dato.tabla from usuario[@nom-comp];

Donde tipo_priv = all | select[,insert,[update]]

Ejemplos

Establecer permisos globales (Todos los permisos en todas las tablas de todas las bases)

grant all on *.* to sedlav@localhost identified by contraseña;

Revocar permisos globales

revoke all, grant option from sedlav@localhost;

Establecer / Revocar privilegios globales al usuario sedlav en la base de datos pruebas

Establecer
grant all on prueba.* to sedlav@localhost identified by contraseña;
Revocar
revoke all on prueba.* from sedlav@localhost identified by contraseña;

Establecer / Revocar privilegios especificos para una tabla

Establecer
grant select,insert on prueba.usuario to sedlav@localhost identified by contraseña;
Revocar
revoke select,insert on prueba.usuario from sedlav@localhost;

Establecer / Revocar privilegios específicos para una columna

Establecer
grant update(nombre-columna) on prueba.usuario to sedlav@localhost
identified by contraseña;
Revocar
revoke update(nombre-columna) on prueba.usuario from sedlav@localhost;

Mostrar privilegios

Para la session actual
show grants;
Para un usuario determinado
show grants for nom-usuario[@nom-comp];

Refrescar privilegios

flush privileges;

Eliminar usuario

drop sedlav[@nom-pc];

Lecturas recomendadas

– help grant (MySQL)
– help revoke (MySQL)
– help drop user (MySQL)




1 Comentario

  1. Yo

    Tambien se puede usar el símbolo % como nombre de la compu lo que siginifica que el usuario en cuestión puede conectarse desde cualquier cliente

    Responder

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *