Предварительное примечание: это не мой ответ. Я нашел его по адресу http://lists.mysql.com/mysql/202610, скопировал и вставлено для простоты кредит Стивену Куку
Вы можете использовать представление INFORMATION_SCHEMA.TABLES для создания операторов GRANT. Напишите запрос в следующих строках:
SELECT CONCAT('GRANT SELECT ON test.', TABLE_NAME, ' to ''foouser'';')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'test'
AND TABLE_NAME LIKE 'foo_%'
Затем запустите его, скопируйте результаты и запустите эти результаты как запрос или сценарий. Конечно, вы можете сходить с ума, как хотите, например, если вы делаете это для многих пользователей, возможно, напишите хранимую процедуру, которая принимает параметр для имени пользователя и, следовательно, может использоваться в качестве инструмента всякий раз, когда вам это нужно.
Это не синтаксис, который вы просили, но это хороший трюк, который работает.
--
Замените схему таблицы «test» на имя вашей базы данных. foo_% можно заменить соответствующим префиксом_%
Я попробовал это самостоятельно, и это сработало отлично.
person
CogitoErgoSum
schedule
04.05.2011