我已经让用户完全控制数据库中的一个表。然而,看起来他们无法删除记录。
我作为一名特权用户尝试过:
GRANT DELETE ON databasename.tablename TO username@'%';
flush privileges;
但是删除stil不起作用
ERROR 1142 (42000): DELETE command denied to user 'username'@'localhost' for table 'tablename'
有什么想法吗?
干杯,
森。
答案 0 :(得分:9)
您的GRANT语句可能需要用户名的其他引号:'username'@'%'
。
您可以在mysql
数据库中查看用户的权限。查看表user
,db
,hosts
,tables_priv
。
您可能拥有相同用户名和不同主机名的条目,例如'username'@'localhost'和'username'@'%'。
MySQL-Documentation描述了MySQL评估这些表的顺序:
http://dev.mysql.com/doc/refman/5.1/en/request-access.html
如果表tables_priv
中有一个条目允许用户DELETE
,那通常就足够了。
AFAIK您不需要在FLUSH PRIVILEGES
之后运行GRANT
- 如果您使用INSERT,DELETE等手动修改权限表,则只需要FLUSH
。