Ho un utente MySQL e voglio che visualizzi SOLO le visualizzazioni che desidero e non qualsiasi altra tabella nel database. Ho concesso a questo utente le autorizzazioni solo su determinate visualizzazioni come segue:
GRANT SHOW VIEW ON `myDatabase`.`awesome_view` TO 'thisUser'@'%'
Se faccio una show grants;
dichiarazione posso vedere queste autorizzazioni solo come previsto. Tuttavia, vorrei che questo utente interrogasse SOLO le viste e non le tabelle correlate a queste viste, ma non riesco a trovare un modo per farlo. Sembra che se voglio che l'utente esegua una selezione nella vista, anche la selezione deve essere concessa per la tabella o sbaglio?
Se rifiuto l' select
istruzione nel resto delle tabelle e nella riga di comando provo a fare una selezione, ottengo quanto segue:
SELECT * FROM myDatabase.fordibenForYouTable;
ERROR 1142 (42000): SELECT command denied to user 'thisUser'@'localhost' for table 'fordibenForYouTable'
Questo è quello che voglio davvero, ma mi viene anche negato se seleziono i dati di visualizzazione.
Esiste un modo per rendere disponibili all'utente solo le visualizzazioni e non le tabelle?