Nota anticipata:questa non è la mia risposta. L'ho trovato su http://lists.mysql.com/mysql/202610 e ho copiato e incollato per semplicità il merito a Stephen Cook
È possibile utilizzare la vista INFORMATION_SCHEMA.TABLES per generare le dichiarazioni GRANT per te. Scrivi una query in questo modo:
SELECT CONCAT('GRANT SELECT ON test.', TABLE_NAME, ' to ''foouser'';')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'test'
AND TABLE_NAME LIKE 'foo_%'
Quindi eseguilo, copia i risultati ed esegui quei risultati come query o script. Ovviamente puoi impazzire quanto vuoi con questo, ad esempio se lo fai per molti utenti magari scrivi una procedura memorizzata che prende un parametro per il nome utente e può quindi essere usata come strumento ogni volta che ne hai bisogno.
Non è una sintassi che hai chiesto, ma è un bel trucco che funziona.
--
Sostituisci lo schema della tabella 'test' con il nome del tuo database. foo_% può essere sostituito con il prefisso appropriato_%
L'ho provato da solo e ha funzionato benissimo.