预告:这不是我的答案。我在http://lists.mysql.com/mysql/202610上找到了它,并且为了简单起见将其复制并粘贴到了Stephen
Cook
您可以使用INFORMATION_SCHEMA.TABLES视图为您生成GRANT语句。按照以下方式编写查询:
SELECt CONCAt('GRANT SELECT ON test.', TABLE_NAME, ' to ''foouser'';')FROM INFORMATION_SCHEMA.TABLESWHERe TABLE_SCHEMA = 'test' AND TABLE_NAME LIKE 'foo_%'然后运行它,复制结果,然后将这些结果作为查询或脚本运行。您当然可以为此疯狂,例如,如果您对许多用户这样做,可能会编写一个存储过程,该过程使用用户名的参数,因此可以在需要时用作工具。
这不是您要求的语法,但这是一个不错的技巧。
-
将表模式“ test”替换为数据库名称。foo_%可以替换为适当的prefix_%
我自己尝试了一下,效果很好。



