8

我已经让用户完全控制数据库中的一个表。但是,他们似乎无法删除记录。

我作为特权用户尝试过:

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

但是删除仍然不起作用

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

有任何想法吗?

干杯,

内森。

4

1 回答 1

11

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

您可以检查用户在mysql数据库中的权限。检查表格user, db, hosts, tables_priv

您可能有具有相同用户名和不同主机名的条目,例如 'username'@'localhost' 和 'username'@'%'。

MySQL 文档描述了 MySQL 评估这些表的顺序:

http://dev.mysql.com/doc/refman/5.1/en/request-access.html

如果您在表中有一个条目tables_priv允许用户访问DELETE,那通常就足够了。

AFAIK 你不需要FLUSH PRIVILEGES在 a 之后运行GRANT- 你只需要FLUSH使用 INSERT、DELETE 等手动修改权限表。

于 2010-10-08T16:21:00.420 回答