Esta es una entrada corta pero útil. A veces viene de maravilla saber cómo darle permisos a un usuario en MySQL de tal modo que realice las operaciones básicas de un CRUD o ABC.
Veamos cómo crear un usuario y darle permisos de:
Esto lo haremos con el comando GRANT en MySQL. Vamos allá.
Nota antes de todo: recuerda que, para crear usuarios y dar permisos, debes tener los permisos para dar permisos. Suena raro, pero en conclusión debes poder crear usuarios y administrar privilegios.
Recomiendo hacerlo con el usuario root si es que tienes acceso a él.
También recomiendo leer una introducción a la CLI de MySQL en caso de que no sepas usarla.
Este paso es opcional si tú ya tienes el usuario, pero de todos modos mostraré cómo crearlo. Recuerda siempre usar contraseñas seguras, aleatorias y largas en caso de que tu app esté en internet o en un lugar público.
Creamos el usuario con:
CREATE USER 'tu_usuario'@'localhost'
IDENTIFIED BY 'una_contraseña_muy_larga';
Cambia el usuario y la contraseña, así como el host si lo requieres. En mi caso lo hice así para un proyecto escolar:
No está de más mencionar que le tomé una foto al código gracias a Polacode, una extensión de Visual Studio Code.
Ahora simplemente le asignamos permisos a ese usuario sobre una base de datos o tabla. El código es:
GRANT SELECT, INSERT, UPDATE, DELETE
ON base_de_datos.tabla TO
'usuario_que_creaste'@'localhost'
IDENTIFIED BY 'la_contraseña_que_pusiste';
Aquí viene algo importante y lo explicaré detalladamente. Sobre todo en lo que va después de ON
.
Si quieres darle permisos en todas las bases de datos a todas las tablas, usa ON *.*
En caso de que sea únicamente a una base de datos, pero a todas las tablas dentro de ella, usa ON nombre_de_la_base_de_datos.*
Por otro lado, si deseas que sea únicamente una base de datos y una tabla, escribe ON nombre_de_la_base_de_datos.nombre_de_la_tabla
.
Para mi caso específico tuve que darle permisos sobre todas las tablas de la base de datos maquila_escuela. Quedó así:
De esta manera le di permisos a mi usuario que hube creado anteriormente.
Esto fue una recomendación de mi profesor y ahora que lo pienso tenía razón. No existe la seguridad absoluta y tal vez un atacante pueda apoderarse de nuestra app o hacer una inyección SQL.
Si restringimos el usuario y le damos únicamente los permisos básicos, no podrá dañar otras bases de datos.
También podemos pensarlo desde el enfoque de un administrador de una base de datos: puede que haya otros usuarios que no deben ver información de otra base de datos o tabla.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios
Excelente amigo me salvaste!!!!