permisos
Creación de permisos
Podemos crear permisos para que los usuarios puedan acceder a la base de datos. Para ello, utilizamos el comando GRANT
:
GRANT ALL PRIVILEGES ON *.* TO 'usuario'@'localhost';
Pero ojo, porque este comando da todos los permisos al usuario. Si queremos darle permisos específicos, podemos hacerlo de la siguiente manera:
GRANT SELECT, INSERT, UPDATE, DELETE ON <base de datos>.* TO 'usuario'@'localhost';
También podríamos dar permisos específicos a una tabla en concreto:
GRANT SELECT, INSERT, UPDATE, DELETE ON base_de_datos.tabla TO 'usuario'@'localhost';
Por último, podemos dar permisos para que el usuario afectado pueda gestionar permisos a otros usuarios:
GRANT SELECT, INSERT ON mysql.* TO 'usuario'@'localhost' WITH GRANT OPTION;
Permisos sobre vistas
Podríamos dar permisos a un usuario para que pueda acceder a una vista, sería similar a dar permisos a una tabla:
GRANT SELECT ON base_de_datos.vista TO 'usuario'@'localhost';
Consultar permisos
Podemos consultar los permisos de un usuario con el comando SHOW GRANTS
:
SHOW GRANTS FOR 'usuario'@'localhost';
Podríamos consultar los permisos de las tablas desde la "table_priv" de la base de datos "mysql":
SELECT * FROM mysql.table_priv WHERE User = 'usuario' AND Host = 'localhost';
Eliminación de permisos
Para eliminar permisos, utilizamos el comando REVOKE
. En mysql, podemos eliminar todos los permisos de un usuario con el siguiente comando:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'usuario'@'localhost';
También podemos eliminar permisos específicos:
REVOKE SELECT, INSERT, UPDATE, DELETE ON <base de datos>.* FROM 'usuario'@'localhost';