Tengo un usuario de MySQL y quiero que vea SOLO las vistas que quiero y no cualquier otra tabla en la base de datos. Otorgué permisos a este usuario solo en ciertas vistas de la siguiente manera:
GRANT SHOW VIEW ON `myDatabase`.`awesome_view` TO 'thisUser'@'%'
Si hago una show grants;
declaración, solo puedo ver estos permisos como se esperaba. Sin embargo, me gustaría que este usuario consulte SOLO las vistas y no las tablas relacionadas con estas vistas, pero no puedo encontrar la manera de hacerlo. Parece ser que si quiero que el usuario haga una selección en la vista, la selección también debe otorgarse para la tabla, ¿o me equivoco?
Si niego la select
declaración en el resto de las tablas, y en la línea de comando trato de hacer una selección, obtengo lo siguiente:
SELECT * FROM myDatabase.fordibenForYouTable;
ERROR 1142 (42000): SELECT command denied to user 'thisUser'@'localhost' for table 'fordibenForYouTable'
De hecho, eso es lo que quiero, pero también se me niega si selecciono los datos de la vista.
¿Hay alguna manera de poner a disposición del usuario solo las vistas y no las tablas?