Cómo Crear un Nuevo Usuario y Otorgar Permisos en MySQL
Sobre MySQL
MySQL es un software de gestión de base de datos de código abierto que ayuda a los usuarios a almacenar, organizar y recuperar sus datos. Tiene una variedad de opciones para otorgar a los usuarios específicos permisos matizados dentro de las tablas y bases de datos; este tutorial ofrecerá una breve descripción general de algunas de las muchas opciones.
Lo que Significa el Color Rojo en el Código.
Las líneas que el usuario necesita ingresar o personalizar estarán en color rojo en este tutorial. El resto debería ser en su mayoría una copia.
Paso 1. Crear un Nuevo Usuario
En la Parte 1 del tutorial MySQL , hicimos todas las ediciones en MySQL como usuario raíz, con acceso total a todas las bases de datos. Sin embargo, en los casos en que se requieren más restricciones, existen formas de crear usuarios con permisos personalizados.
Comencemos haciendo un nuevo usuario dentro del shell MySQL:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Tristemente, en este punto newuser no tiene permisos para hacer nada con las bases de datos. De hecho, si el nuevo usuario incluso intenta iniciar sesión (con la contraseña, la contraseña), no podrán acceder al shell MySQL.
Por lo tanto, lo primero que debe hacer es proporcionar al usuario acceso a la información que necesitará.
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
Los asteriscos en este comando hacen referencia a la base de datos y la tabla (respectivamente) a los que pueden acceder: este comando específico le permite al usuario leer, editar, ejecutar y realizar todas las tareas en todas las bases de datos y tablas.
Una vez que haya finalizado los permisos que desea configurar para sus nuevos usuarios, asegúrese siempre de volver a cargar todos los privilegios.
FLUSH PRIVILEGES;
Tus cambios ahora estarán en vigencia.
Paso 2. Otorgar Permisos de Usuario Diferentes
Aquí hay una breve lista de otros permisos comunes que los usuarios pueden disfrutar.
- TODOS LOS PRIVILEGIOS. Como vimos anteriormente, esto permitiría a un usuario de MySQL acceder a una base de datos designada (o si no se selecciona ninguna base de datos en todo el sistema)
- CREAR. Les permite crear nuevas tablas o bases de datos
- DROP. Les permite eliminar tablas o bases de datos
- ELIMINAR. Les permite eliminar filas de las tablas.
- INSERTAR. Les permite insertar filas en tablas.
- SELECT. Les permite usar el comando Select para leer bases de datos
- ACTUALIZACIÓN. Permite que actualicen las filas de la tabla.
- OPCIÓN GRANT. les permite otorgar o eliminar privilegios de otros usuarios
Para proporcionar a un usuario específico un permiso, puede usar este marco:
GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’;
Si desea darles acceso a cualquier base de datos o a cualquier tabla, asegúrese de colocar un asterisco (*) en lugar del nombre de la base de datos o el nombre de la tabla.
Cada vez que actualiza o cambia un permiso, asegúrese de usar el comando Flush Privileges.
Si necesita revocar un permiso, la estructura es casi idéntica a la que otorga:
REVOKE [type of permission] ON [database name].[table name] FROM ‘[username]’@‘localhost’;
Al igual que puede eliminar las bases de datos con DROP, puede usar DROP para eliminar un usuario por completo:
DROP USER ‘demo’@‘localhost’;
Para probar su nuevo usuario, cierre sesión escribiendo
quit
y vuelva a iniciar sesión con este comando en el terminal:
mysql -u [username]-p
Fuente. Artículo traducido y con muy ligeras modificaciones de: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-debian