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

Posted

技术标签:

【中文标题】GRANT DELETE ON database.table TO username@\'%\';【英文标题】: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”权限。 【参考方案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 表的指针。删除现在有效。

以上是关于GRANT DELETE ON database.table TO username@'%';的主要内容,如果未能解决你的问题,请参考以下文章

GRANT - 定义访问权限

GRANT SELECT ON sys.server_principals 给 usersys 角色。如何?

Security10:Grant object Permission to DB Role or User

Oracle杂记

Mysql用户权限管理

Hive权限之改进