GRANT DELETE ON database.table TO username @'%';

时间:2010-10-08 15:08:12

标签: mysql mysql-error-1142

我已经让用户完全控制数据库中的一个表。然而,看起来他们无法删除记录。

我作为一名特权用户尝试过:

GRANT DELETE ON databasename.tablename TO username@'%';
flush privileges;

但是删除stil不起作用

ERROR 1142 (42000): DELETE command denied to user 'username'@'localhost' for table 'tablename'

有什么想法吗?

干杯,

森。

1 个答案:

答案 0 :(得分:9)

您的GRANT语句可能需要用户名的其他引号:'username'@'%'

您可以在mysql数据库中查看用户的权限。查看表userdbhoststables_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