abr 15 2010

Gestión de usuarios en mysql

Category: MysqlDavid González @ 23:46

Vamos a ver con unos ejemplos, como gestionar los usuario en mysql. En concreto, veremos como crear, eliminar, otorgar permisos, y revocarlos.

Lo primero, será acceder a la consola mysql:

dgonzalez@David:~$ mysql -u root -p

Para otorgar permisos a un usuario ya creado, sobre una base de datos, usaremos la siguiente sintaxis:

mysql>GRANT ALL PRIVILEGES ON base_de_datos.* TO 'usuario'@'localhost'

En este caso, con el * especificamos todas las tablas de la base de datos (base_de_datos), pero se podrían especificar.

Para quitar o revocar los permisos a un usuario:

mysql> REVOKE ALL PRIVILEGES ON base_de_datos.* FROM 'usuario'@'localhost';

También podemos crear un usuario mysql y otorgarle permisos sobre una base de datos directamente:

mysql> GRANT ALL PRIVILEGES ON base_de_datos.* TO 'usuario'@'localhost' IDENTIFIED BY 'password';

Cada acción que hagamos, que tenga que ver con los privilegios, ya sea crear un usuario, modificar permisos de un usuario, etc.. será necesario realizar este comando para recargar los privilegios:

mysql> FLUSH PRIVILEGES;

Esta es una manera, pero existen otras. Mysql, guarda toda la información de los usuarios en la tabla ‘user’ de la base de datos ‘mysql’, que es de sistema. Por tanto, nos podemos manejar con esta tabla; vamos a ver unos ejemplos.

Para ver los usuario creados:

mysql> SELECT User,Host,Password FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User             | Host      | Password                                  |
+------------------+-----------+-------------------------------------------+
| root             | localhost | *A104D53E7F84512A600F950D1E8D2C5D6C45C605 |
| user_tureceta    | localhost | *A104D53E7F84512A600F950D1E8D2C5D6C45C605 |
| user2_tureceta   | localhost | *51228B5734FF3617AF47D1BCB70D3A1EA4E6BE20 |
+------------------+-----------+-------------------------------------------+

Crear un usuario:

mysql> CREATE USER 'user2_tureceta' IDENTIFIED BY 'pass_2';

Borrar un usuario:

mysql> DROP USER 'user2_tureceta'@'%';

Renombrar un usuario:

mysql> RENAME USER 'user2_tureceta'@'%' TO 'user3_tureceta'@'localhost';

Cambiar la clave de un usuario mysql:

mysql> SET PASSWORD FOR 'user3_tureceta'@'%' = PASSWORD('pass_3');

Cuando creemos un usuario de esta forma, habrá que otorgarle permisos con un GRANT.

Recordad que igual que antes, habrá que recargar los privilegios con un “flush privileges”.

Como último apunte, en todos los comandos que hemos visto la respuesta del mysql será así:

Query OK, 0 rows affected (0.00 sec)

Entradas relacionadas

Etiquetas: , ,