Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL授权语法和通配符_Mysql - Fatal编程技术网

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