仅在MySQL中为phpmyadmin授予对某些列的访问权限

时间:2014-02-03 19:27:07

标签: mysql sql phpmyadmin grant

我想在我的MySQL数据库中创建一个新用户,该用户只能通过phpmyadmin选择和更新我表中的某些列。我知道这个问题已在这里多次被问到,但我有一个以前从未提及过的问题。

我使用此命令授予用户在表中选择两行的权限:

GRANT SELECT (id,name) ON db.table TO 'user'@'%'

当我在phpmyadmin上使用此用户登录并希望显示该表(即只显示列ID和名称)时,它会显示以下错误消息:

#1142 - SELECT command denied to user 'user'@'localhost' for table 'table'

如果我在表上授予select它可以工作但是用户可以看到整个表。 有人可以帮我解决这个问题吗?提前谢谢!

编辑:我也尝试了一个视图,并且工作得很好。问题是,当我使用phpmyadmin的搜索功能时,我无法对搜索结果进行任何更改。错误消息说没有' unique' key定义,但视图包含主键列和另一个定义为唯一的列。

1 个答案:

答案 0 :(得分:1)

您可能需要检查'user'@'localhost'是否具有覆盖'user'@'%'的GRANT权限。

尝试以下命令:

为'用户'@'localhost'显示资助; 和 为'用户'@'%'显示资助;

然后比较显示的权限。

相关问题