我是MySQL管理职责的新手,我试图使用MySQL Workbench 5.2.44将SELECT权限授予表中的有限列,但没有成功:
GRANT SELECT (col1, col2, col3) ON mysqldb.testtable TO 'testuser'@'%'我得到以下错误:
Error Code: 1142. GRANT command denied to user 'root'@'dhcp-x-x-x-x.companyname.com' for table 'testtable'我曾在这里经历过类似的文章,并做过以下测试:
1)为“root”@“localhost”显示赠款;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD 'xxxxxxxx' WITH GRANT OPTION
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION2)为“root”@‘%’显示赠款;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD 'xxxxxxxxx'
GRANT ALL PRIVILEGES ON `mysqldb`.* TO 'root'@'%'3)为CURRENT_USER()提供赠款;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD 'xxxxxxxxx'
GRANT ALL PRIVILEGES ON `mysqldb`.* TO 'root'@'%'4)选择USER()、CURRENT_USER();
'root@dhcp-x-x-x-x.companyname.com', 'root@%'5)从select_priv中选择主机、用户、select_priv、Create_user_priv;
localhost root Y Y
hostname.companyname.com root Y Y
::1 root Y Y
% root Y Y我是否收到了'GRANT命令拒绝‘错误,因为即使我是root用户,CURRENT_USER()也被标识为'root'@'%’,并且授予GRANT选项的所有特权‘仅授予'root'@'localhost’,因此,'root'@'%‘并不等于'root'@'localhost'?(我正在通过MySQL WorkBench连接主机)
如果不使用
发布于 2014-05-23 17:20:58
首先,您需要在本地连接mysql,如前所述。试着按照建议为'root'@'%‘做授权,如果时间紧迫,一个快速而肮脏的方法来完成这个任务(是的,遗憾的是,我不得不这样做)是专门授予完全限定名'root'@'dhcp-123.123.123.123.companyname.com'.的特权
发布于 2014-05-22 21:48:10
我是否收到了'GRANT命令拒绝‘错误,因为即使我是root用户,CURRENT_USER()也被标识为'root'@'%’,并且授予GRANT选项的所有特权‘仅授予'root'@'localhost’,因此,'root'@'%‘并不等于'root'@'localhost'?
是的,你是对的。来自mysql文档的片段
若要使用GRANT,必须具有GRANT选项特权,并且必须具有所授予的权限。WITH GRANT OPTION子句使用户能够将用户在指定权限级别上拥有的任何特权授予其他用户。您应该小心授予授予选项特权的用户,因为具有不同权限的两个用户可能能够组合特权!
解决方案是将mysql从本地主机连接到root用户,并更改root@%的特权。
https://serverfault.com/questions/597922
复制相似问题