jueves, 24 de octubre de 2019

Cambiar permisos de usuario en MySQL

En este sencillo post aprenderemos como crear un usuarios con todos los privilegios para MySQL. (obviamente tenemos que tener instalado MySQL, para ello hay un post dedicado a ello en este blog).


MySQL Logo con un fondo no muy transparente o.O
Primero que todo entramos a MySQL

sudo mysql
 
o
 

mysql -u root -p
 

segun como tengamos configurado nuestro usuario root. 




Luego desde el prompt de MySQL ejecutamos lo siguiente:

mysql> CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY 'password';

Y luego le damos todos los privilegios al usuario con el siguiente comando:

 mysql>GRANT ALL PRIVILEGES ON *.* TO 'nombre_usuario'@'localhost' WITH GRANT OPTION;

 Y ya podemos salir de mysql porque el trabajo esta terminado :D

mysql> exit

Saludos amigos y ojala este post les haga la vida mas facil y les evite las miles de frustraciones que seguro (como yo) ya tuvieron :D

BONUS TRACK

¡¡PERO OJO!! capaz vos no querías darle TOOOODOS los privilegios al nuevo usuario y es entendible. ¿¿y ahí?? ¿Qué se hace?

¡Tranca che! Vos sabes que en mate&code no te vas sin EL DATO, por eso te dejo esta mini guía para comprender el comando GRANT de SQL:

En realidad la instrucción seria algo asi como esto:


GRANT [permiso] ON [Base de Datos].[Tabla/s] TO [usuario]@'localhost'


Vamos a descomponer el comando para entenderlo mejor:

  • GRANT: Otorga privilegios a un usuario especificado en las BD especificadas.
  • [permisos]: Aquí podemos elegir entre varias opciones según la cantidad de privelgios que queremos darle al usuario. Las mismas se listan a continuación:
    • ALL PRIVILEGES: Otorga todos los privilegios.
    • SELECT: Permite hacer consultas.
    • INSERT: Permite Insertar registros nuevos.
    • UPDATE: Permite actualizar registros.
    • DELETE: Permite eliminar registros.
    • CREATE: Permite crear tablas.
    • DROP: Permite eliminar tablas.
    • ALTER: Permite modificar la definición de las tablas.
    • INDEX: Permite crear índices en tablas existentes.
    • GRANT OPTION: Permite dar o quitar privilegios a los usuarios de la BD.
* NOTA: Estos se pueden combinar de cualquier forma para dar los privilegios específicos que queramos darle a un usuario determinado. Obviamente ALL PRIVILEGES si se lo usa debería ir solo ya que da todos los privilegios y no tendria sentido combiarnlo con otro.

  • [BD]: Indica sobre que BD queremos dar los privilegios antes mencionados. Si usamos * decimos que le damos permiso sobre TODAS las BD del sistema.
  • [Tablas/s]: Indica sobre que Tablas de la/s BD indicadas anteriormente queremos darle permisos al usuario. Si usamos * decimos que le damos permiso sobre TODAS las Tablas de las BD indicadas.
  • [usuario]: A que usuario le queremos dar los permisos detallados anteriormente. Si usamos el "*" diremos que TODOS los usuarios tienen permisos para realizar dicha acción.
Veamos un par de ejemplos para entender esto:

GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'jorgehoracio'@'localhost'

Dimos permisos de Consultar, Insertar, Actualizar y Eliminar registros a jorgehoracio sobre todas las BD y todas las tablas existentes.
GRANT SELECT ON propietarios TO '*'@'localhost'
Se dieron permisos a TODOS LOS USUARIOS para Consultar la tabla propietarios.
Para eliminar los permisos se utiliza la clausula REVOKE en lugar de GRANT y bajo la misma estructura.
REVOKE ALL PRIVILEGES ON *.* TO 'luisandreseim'@'localhost'
 En la anterior sentencia se le quitaron todos los privilegios al usuario luisandreseim de todas las tablas y todas las bases de datos.

Pero este tema de quitar permisos lo veremos con mas detalles en una próxima entrada.

¡AHORA SI FINAL FINAL DE TODO!

Espero que esta sencilla guía les ayude a volver a tomar el control sobre sus BD's 😉

¡¡Un abrazo virtual grande y a disfrutar de esos mates en estos días frescos!!


No hay comentarios.:

Publicar un comentario