Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

Configuración de usuarios en MySQL


MySQL permite la configuración de usuarios para las distintas bases de datos, de este modo solo los usuarios autorizados serán capaces de realizar ciertas operaciones sobre las bases de datos definidas.

 

Consultar usuarios y permisos:

use mysql
SELECT User,Host from user;
+------+----------------+
| User | Host           |
+------+----------------+
| root | 127.0.0.1      |
| root | localhost      |
+------+----------------+


SHOW GRANTS FOR 'root'@'localhost';
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD 'XXXX' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+

 

Como podemos ver root desde la máquina local tienen todos los privilegios en todas las bases de datos.

 

Crear usuarios:

use mysql;
CREATE USER [email protected]'%' IDENTIFIED BY 'XXXX';
GRANT ALL PRIVILEGES ON prueba.* TO [email protected]'%' IDENTIFIED BY 'XXXX';
GRANT SELECT ON prueba.* TO [email protected]'localhost' IDENTIFIED BY 'XXXX';
GRANT SELECT, INSERT, DELETE ON prueba.* TO [email protected]'localhost' IDENTIFIED BY 'XXXX';

FLUSH PRIVILEGES;
use mysql

show grants for [email protected]'%';
+-------------------------------------------------------------------------------------------------------+
| Grants for [email protected]%                                                                                   |
+-------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user00'@'%' IDENTIFIED BY PASSWORD '*8A1AE429B69F39D29052560894682AC750BC9062' |
| GRANT ALL PRIVILEGES ON `prueba`.* TO 'user00'@'%'                                                    |
+-------------------------------------------------------------------------------------------------------+


show grants for [email protected]'localhost';
+---------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                   |
+---------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user01'@'localhost' IDENTIFIED BY PASSWORD '*8A1AE429B69F39D29052560894682AC750BC9062' |
| GRANT SELECT ON `prueba`.* TO 'user01'@'localhost'                                                            |
+---------------------------------------------------------------------------------------------------------------+


show grants for [email protected]'localhost';
+---------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                   |
+---------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user02'@'localhost' IDENTIFIED BY PASSWORD '*8A1AE429B69F39D29052560894682AC750BC9062' |
| GRANT SELECT, INSERT, DELETE ON `prueba`.* TO 'user02'@'localhost'                                            |
+---------------------------------------------------------------------------------------------------------------+

 

NOTA: Es posible crear y asignar el usuario en un solo paso, tan solo hay que asignarle ciertos privilegios y el usuario será creado de forma automática.
Los permisos USAGE son para que MySQL sea consciente de que el usuario existe sin asignarle ningún permiso real.

 

Eliminar permisos y eliminar usuario:

REVOKE ALL PRIVILEGES ON *.* FROM [email protected]'localhost';
drop user [email protected]'localhost';
use mysql

select user, host from user where user='user02';
Empty set (0.01 sec)


Cambiar password usuario:

SET PASSWORD FOR [email protected]'localhost' = PASSWORD('YYYY');

 

Con esto podremos tener controlados los accesos a nuestras bases de datos, de todos modos no está de mas que apliquemos reglas de firewall permitiendo el acceso al puerto 3306 solo desde ips de confianza.


Autor: Kr0m -- 26/02/2014 12:02:03