MySQL授权语法和通配符
要允许MySQL授权语法和通配符,mysql,Mysql,要允许someuser在mydb上进行选择,我可以执行以下语句: GRANT SELECT ON mydb.* TO 'someuser'@'somehost'; 假设我只想在两个表上允许选择:event和event\u detail 我想我可以做到以下几点: GRANT SELECT ON mydb.event TO 'someuser'@'somehost'; GRANT SELECT ON mydb.event_detail TO 'someuser'@'somehost'; 以下方法
someuser
在mydb
上进行选择,我可以执行以下语句:
GRANT SELECT ON mydb.* TO 'someuser'@'somehost';
假设我只想在两个表上允许选择:event
和event\u detail
我想我可以做到以下几点:
GRANT SELECT ON mydb.event TO 'someuser'@'somehost';
GRANT SELECT ON mydb.event_detail TO 'someuser'@'somehost';
以下方法也适用吗?(假设没有其他表匹配)
否-通配符只能用于整个表或数据库名称
您必须为每个表显式键入grant语句,或者编写脚本或程序来执行此操作。基于
grant
语法:
GRANT
... priv_level ...
priv_level:
*
| *.*
| db_name.*
| db_name.tbl_name
| tbl_name
| db_name.routine_name
所以我想你不能。无论如何,您可以使用
信息\u模式
查找那些具有所需名称前缀的表,然后对它们进行迭代。我怀疑它不会起作用(或者如果,则使用%
通配符)。但是为什么不试试呢?
GRANT
... priv_level ...
priv_level:
*
| *.*
| db_name.*
| db_name.tbl_name
| tbl_name
| db_name.routine_name