mysql授予权限

时间:2012-03-29 01:28:07

标签: mysql privileges grant

遇到mysql grant语句问题。

我想要一位拥有以下内容的用户:

  1. 以'abc'或'xyz'开头的表的readonly(select)权限
  2. AND能够创建表格。
  3. 这是我现在拥有的。 .*语法给了我错误:

    GRANT CREATE, SELECT 
      ON db1.abc.* , db1.xyz.* 
      TO 'some_user'@'%' 
      IDENTIFIED BY 'some_password';
    

1 个答案:

答案 0 :(得分:1)

点是MySQL中的分隔符 - 因此在“db1.abc。*”中,“db1”是数据库名称,“abc”是表名。因此“*”是什么 - 一列?这是指定列的错误语法。

正如您在http://dev.mysql.com/doc/refman/5.1/en/grant.html中可以看到的那样,您可以看到您将列名放在parens中:

GRANT SELECT (col1), INSERT (col1,col2) ON mydb.mytbl TO 'someuser'@'somehost';

此外,您不能使用通配符表名称 - 如果您有多个名称以“abc”或“xyz”开头的表,则必须明确列出所有表。