【问题标题】:mysql grant privilegesmysql授予权限
【发布时间】:2012-03-29 01:28:06
【问题描述】:

在使用 mysql 授权语句时遇到问题。

我想要一个用户:

  1. 对以“abc”或“xyz”开头的表具有只读(选择)权限
  2. AND 能够创建表。

这是我目前拥有的。 .* 语法给了我错误:

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

【问题讨论】:

  • 格式化您的问题可以提高可读性,并使人们更容易理解您的问题。再次单击edit 链接以查看我所做的更改如何影响问题的最终外观。

标签: mysql privileges grant


【解决方案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”开头的表,则必须明确列出所有表。

【讨论】:

  • 谢谢,您回答了我的问题“您不能使用通配符表名 - 您必须明确列出所有表”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 2016-03-16
  • 2020-11-22
  • 2014-03-14
相关资源
最近更新 更多