设置用户权限时“向用户拒绝SHOW命令”

时间:2014-05-22 09:08:10

标签: mysql

我需要使用MYSQL

将用户UPDATE和SELECT授予db中的两个特定列

我使用以下命令执行此操作

GRANT SELECT (title,new_title,catagory,description,runtime), UPDATE    (title,new_title,catagory,description,runtime) ON database.table1 TO 'user1'@'%' IDENTIFIED  BY    'xxx';
FLUSH PRIVILEGES

但是当我尝试使用Sequal Pro查看表/字段时,我收到以下错误

MySQL said: SHOW command denied to user 'suer1'@'host.x.x.x' for table 'table1'

我可以看到数据库列表中的数据库以及我已授予访问权限的一个表,但我无法从中读取任何数据..有谁知道如何修复此错误并且只能查看/编辑我想要的表/列..?

2 个答案:

答案 0 :(得分:0)

如果您选择相关的特定列,您的授权实际上会有效:

SELECT title, new_title, catagory, description, runtime FROM table1

但是,像这样的更通用的查询将失败SELECT command denied to user

SELECT * FROM table1

我认为这可能是Sequal Pro尝试获取有关表格信息的方式的问题。它说MySQL said: SHOW command denied to user,但尽管如下有效:

SHOW COLUMNS FROM table;

我不确定which SHOW command是否失败了Sequal Pro。

答案 1 :(得分:-1)

试试这个:

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