2010-10-08 30 views
6

我已經給用戶完全控制數據庫中的一個表。不過,看起來他們不能刪除記錄。GRANT DELETE ON database.table TO username @'%';

我試圖爲privilaged用戶:

GRANT DELETE ON databasename.tablename TO [email protected]'%'; 
flush privileges; 

但刪除了史迪威不起作用

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

任何想法?

乾杯,

Nathan。

+0

嘗試授予他們「用法」爲好。 – Cfreak 2010-10-08 15:10:19

回答

8

您的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 - 你只需要FLUSH如果你用INSERT手動修改權限表,刪除等

+0

感謝您查看mysql表的指針。刪除現在工作。 – 2010-10-11 08:57:12