2012-03-29 334 views
0

遇到mysql授权语句有问题。mysql授予权限

我想谁拥有用户:

  1. 只读(选择)权限上以“ABC”或“某某”
  2. 并具有创建表的能力开始表。

这是我现在拥有的。该.*语法给我的错误:

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

格式化您的问题可提高可读性,并使人们更容易理解您所要求的内容。再次点击编辑链接,看看我所做的更改如何影响问题的最终外观。 – 2012-03-29 01:33:38

+0

优秀,谢谢! – user1082428 2012-03-29 01:35:03

回答

1

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

正如你在http://dev.mysql.com/doc/refman/5.1/en/grant.html了解,你可以看到你把列名的括号:

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

而且,你不能外卡表名 - 你必须列出所有如果有多个表的名称以'abc'或'xyz'开头,那么这些表格明确表示。

+0

谢谢,你回答我的问题是“你不能通配表名 - 你必须明确列出所有的表” – user1082428 2012-03-29 01:52:29