【问题标题】:GRANT DELETE ON database.table TO username@'%';GRANT DELETE ON database.table TO username@'%';
【发布时间】:2011-04-22 22:54:28
【问题描述】:

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

我作为特权用户尝试过:

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

但是删除还是不行

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

有什么想法吗?

干杯,

内森。

【问题讨论】:

  • 尝试授予他们“USAGE”权限。

标签: mysql mysql-error-1142


【解决方案1】:

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

您可以在mysql 数据库中检查用户的权限。检查表userdbhoststables_priv

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

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

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

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

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

【讨论】:

  • 感谢您查看哪些 mysql 表的指针。删除现在有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 1970-01-01
  • 2022-11-26
  • 2021-02-14
  • 1970-01-01
  • 2012-11-04
  • 1970-01-01
相关资源
最近更新 更多