Crea una cuenta de usuario MySQL y otorga todos los privilegios
Justo cuando empieces a usar MySQL, recibirás un nombre de usuario y una contraseña. Estas credenciales iniciales te otorgarán acceso root o control total de todas tus bases de datos y tablas.
Sin embargo, hay ocasiones en las que deberás otorgar acceso a la base de datos a otra persona sin otorgarle el control total.
Por ejemplo, si tienes que contratar desarrolladores para hacer mantenimiento a tus bases de datos, pero no deseas darles la capacidad de eliminar o modificar cualquier información confidencial.
En ese caso, debes darles las credenciales de un usuario no root. De esta manera, puedes realizar un seguimiento de lo que los desarrolladores pueden y no pueden hacer con tus datos.
En esta parte, explicaremos cómo crear una cuenta de usuario en MySQL y otorgar todos los privilegios de tu base de datos. En un sentido práctico, no es aconsejable dar el control total a un usuario no root. Sin embargo, sigue siendo un buen punto de entrada para conocer los privilegios del usuario.
Para crear una nueva cuenta de usuario en MySQL, sigue estos pasos:
Accede a la línea de comando e ingresa al servidor MySQL:
El script devolverá este resultado, que confirma que estás accediendo a un servidor MySQL.
Luego, ejecuta el siguiente comando:
nuevo_usuario es el nombre que le hemos dado a nuestra nueva cuenta de usuario y la sección IDENTIFIED BY «contraseña» establece un código de acceso para este usuario. Puedes reemplazar estos valores con los tuyos, dentro de las comillas.
Para otorgar todos los privilegios de la base de datos para un usuario recién creado, ejecuta el siguiente comando:
Para que los cambios tengan efecto inmediatamente, elimina estos privilegios escribiendo el comando:
Una vez hecho esto, tu nueva cuenta de usuario tendrá el mismo acceso a la base de datos que el usuario root.
Conceder privilegios por separado para un usuario de MySQL
Recuerda especificar el nombre de la base de datos y el nombre de la tabla y separarlos con un . (punto) y sin espacios. Esto le dará al usuario root un control detallado sobre ciertos datos.
Estos son los comandos más utilizados en MySQL:
CREATE: permite a los usuarios crear una base de datos o una tabla
SELECT: permite a los usuarios recuperar datos
INSERT: permite a los usuarios agregar nuevas entradas en las tablas
UPDATE: permite a los usuarios modificar entradas existentes en tablas
DELETE: permite a los usuarios borrar entradas de la tabla
DROP: permite a los usuarios eliminar tablas de bases de datos completas
GRANT OPTION
Te permite conceder o revocar a otros usuarios aquellos privilegios que tú mismo posees. Es decir, puedes dar o quitar privilegios que tú posees, a otros usuarios con la sentencia GRANT. Además, para otorgar a un usuario el privilegio GRANT OPTION debemos especificar WITH GRANT OPTION al final de la consulta GRANT.
La Sintaxis es:El uso del tipo de permiso ALL PRIVILEGES (que hemos usado en el ejemplo anterior) permitirá todos los permisos listados antes.
Para usar cualquiera de estas opciones, simplemente reemplaza TIPO_DE_PERMISO con la palabra clave apropiada. Para aplicar varios privilegios, sepáralos con una coma. Por ejemplo, puedes asignar CREATE y SELECT a tu cuenta de usuario MySQL no root con este comando:
A veces, puedes encontrarte con una situación en la que necesitas revocar los privilegios otorgados a un usuario. Puedes hacerlo ingresando:
Por ejemplo, para retirar todos los privilegios para un usuario no root, debes usar:
Finalmente, puedes eliminar por completo una cuenta de usuario existente mediante el siguiente comando:
Consejo:
Recuerda que debes tener acceso de root para ejecutar cualquiera de estos comandos. Asegúrate de ejecutar el comando FLUSH PRIVILEGES; después de hacer tus cambios.
Mostrar los privilegios de cuenta de un usuario de MySQL
Para encontrar qué privilegios ya se han otorgado a un usuario de MySQL, puedes usar el comando SHOW GRANTS:
El resultado será similar a esto:
+---------------------------------------------------------------------------+
| Grants for user_name@localhost |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user_name'@'localhost' |
| GRANT ALL PRIVILEGES ON 'database_name'.* TO 'user_name'@'localhost'. |
| REVOKE ALL PRIVILEGES ON * . * FROM 'user_name'@'localhost';
+---------------------------------------------------------------------------+
3 rows in set (0.00 sec)
No hay comentarios:
Publicar un comentario