要允许someuser
在mydb
上执行SELECT,我可以执行以下语句:
GRANT SELECT ON mydb.* TO 'someuser'@'somehost';
假设我只想在两个表上允许SELECT:event
和event_detail
。
我想我可以做到以下几点:
GRANT SELECT ON mydb.event TO 'someuser'@'somehost';
GRANT SELECT ON mydb.event_detail TO 'someuser'@'somehost';
以下内容是否也有效? (假设没有其他表匹配)
GRANT SELECT ON mydb.event* TO 'someuser'@'somehost';
答案 0 :(得分:1)
否 - 通配符只能用于整个表或数据库名称。
您必须明确地为每个表键入grant语句,或者编写脚本或程序来为您执行此操作。
答案 1 :(得分:1)
基于GRANT
语法:
GRANT
... priv_level ...
priv_level:
*
| *.*
| db_name.*
| db_name.tbl_name
| tbl_name
| db_name.routine_name
所以我想你不能。无论如何,您可以使用INFORMATION_SCHEMA
查找具有所需名称前缀的表,然后遍历它们。