You can use the INFORMATION_SCHEMA.TABLES view to generate the GRANT statements for you. Write a query along these lines:

SELECT   CONCAT('GRANT SELECT ON test.', TABLE_NAME, ' to ''foouser'';')
FROM     INFORMATION_SCHEMA.TABLES
WHERE    TABLE_SCHEMA = 'test'
         AND TABLE_NAME LIKE 'foo_%'

Then run it, copy the results, and run those results as a query or script. You can of course get as crazy as you want with this, for example if you do this for many users maybe write a stored procedure that takes a parameter for the username and can therefore be used as a tool whenever you need it.

It isn't a syntax you asked for, but it is a nice trick that works.



David Felio wrote:
Assume database 'biggie' with 15 tables, 10 of which start with 'foo_'. I want the user 'foouser' to have access only to those tables that begin with 'foo_'.

I'm hoping that I am just being blind because I don't see anything in the manual or in the MySQL book on granting to multiple tables at once and the * wildcard appears to only work by itself, not when appended to a string (i.e. I can't do "grant select on biggie.foo_* to 'foouser'..."). I've tried multiple variations of wildcards, to no avail.

Please tell me I'm not going to have to explicitly grant privs to each table. There are actually several set of tables for a total of several hundred tables to which I will need to apply permissions.

Thanks.

David

--MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to