Eu tenho um usuário MySQL e quero que ele visualize APENAS as visualizações que eu quero e não qualquer outra tabela no banco de dados. Eu concedi a este usuário permissões apenas em determinadas visualizações, como a seguir:
GRANT SHOW VIEW ON `myDatabase`.`awesome_view` TO 'thisUser'@'%'
Se eu fizer uma show grants;
declaração, só posso ver essas permissões conforme o esperado. No entanto, eu gostaria que esse usuário consultasse APENAS as exibições e não as tabelas relacionadas a essas exibições, mas não consigo encontrar uma maneira de fazer isso. Parece que se eu quiser que o usuário faça uma seleção na exibição, a seleção também deve ser concedida para a tabela, ou estou errado?
Se eu negar a select
instrução no restante das tabelas e na linha de comando, tentar fazer uma seleção, obtive o seguinte:
SELECT * FROM myDatabase.fordibenForYouTable;
ERROR 1142 (42000): SELECT command denied to user 'thisUser'@'localhost' for table 'fordibenForYouTable'
É isso que eu realmente quero, mas também sou negado se selecionar os dados da visualização.
Existe uma maneira de disponibilizar ao usuário apenas as visualizações e não as tabelas?