J'ai un utilisateur MySQL et je veux qu'il affiche UNIQUEMENT les vues que je veux et pas toute autre table dans la base de données. J'ai accordé à cet utilisateur des autorisations uniquement sur certaines vues, comme suit:
GRANT SHOW VIEW ON `myDatabase`.`awesome_view` TO 'thisUser'@'%'
Si je fais une show grants;
déclaration, je ne peux voir ces autorisations que comme prévu. Cependant, j'aimerais que cet utilisateur interroge JUSTE les vues et non les tables liées à ces vues, mais je ne trouve pas de moyen de le faire. Il semble que si je veux que l'utilisateur fasse une sélection sur la vue, la sélection doit également être accordée pour la table, ou je me trompe?
Si je refuse l' select
instruction dans le reste des tableaux, et dans la ligne de commande, j'essaie de faire une sélection, j'ai obtenu ce qui suit:
SELECT * FROM myDatabase.fordibenForYouTable;
ERROR 1142 (42000): SELECT command denied to user 'thisUser'@'localhost' for table 'fordibenForYouTable'
C'est ce que je veux en effet, mais on m'a également refusé si je sélectionne les données de vue.
Existe-t-il un moyen de mettre à la disposition de l'utilisateur uniquement les vues et non les tables?