设置用户权限时出现“拒绝用户使用SHOW命令”的错误提示

3

我需要授予一个用户在MYSQL数据库中更新和查询两个特定列的权限。

我使用以下命令来实现这一目标:

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

然而,当我试图使用Sequel Pro查看表/字段时,出现以下错误。
MySQL said: SHOW command denied to user 'suer1'@'host.x.x.x' for table 'table1'

我可以在数据库列表中看到DB和一个我已经授权访问的表,但是我无法读取其中的任何数据。是否有人知道如何修复此错误,并仅查看/编辑我想要的表格/列..?

2个回答

1

如果您选择特定的列,则您的授权将实际起作用:

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;

我不确定Sequal Pro中哪个SHOW命令失败了。


-1

试试这个:

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

尝试这个... https://dev59.com/jG445IYBdhLWcg3wJ258 - Ajitha Ms
查询几乎与问题相同,链接的帖子授予全局权限。原始问题是询问如何在授予特定列权限时使SHOW工作。 - Luke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接