我需要使用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'
我可以看到数据库列表中的数据库以及我已授予访问权限的一个表,但我无法从中读取任何数据..有谁知道如何修复此错误并且只能查看/编辑我想要的表/列..?
答案 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;