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
数据库中检查用户的权限。检查表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 你不需要在 GRANT
之后运行 FLUSH PRIVILEGES
- 如果你使用 INSERT、DELETE 等手动修改权限表,你只需要 FLUSH
。
【讨论】:
感谢您查看哪些 mysql 表的指针。删除现在有效。以上是关于GRANT DELETE ON database.table TO username@'%';的主要内容,如果未能解决你的问题,请参考以下文章
GRANT SELECT ON sys.server_principals 给 usersys 角色。如何?