2010-10-08 16 views
6

Bir veritabanında bir tablo üzerinde bir kullanıcı tam denetim verdim. Görünüşe göre kayıtlarını silemezler.GRANT DELETE ON database.table Kullanıcı adına @ '%';

Ben ayrıcalıklı kullanıcı olarak denedim:

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

Ama hala

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

Herhangi fikirleri çalışmıyor silmek?

Alkış,

Nathan.

+0

yanı "KULLANIM" Onları verilmesi deneyin. – Cfreak

cevap

8

GRANT ifadeniz, kullanıcı adı için ek alıntılar gerekebilir: 'username'@'%'.

mysql veritabanındaki kullanıcı ayrıcalıklarını kontrol edebilirsiniz. user, db, hosts, tables_priv tablolarını kontrol edin.

Aynı kullanıcı adı ve farklı ana bilgisayar adlarıyla, 'kullaniciadi' @ 'localhost' ve 'kullaniciadi' @ '%' gibi girislere sahip olabilirsiniz. MySQL Belgeleri tarif

olan MySQL bu tabloları değerlendirir sipariş:

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

Eğer DELETE olanak tanıyan tablo tables_priv bir giriş varsa, bu, normal olarak yeterli olmalıdır.

AFAIK bir GRANT sonra FLUSH PRIVILEGES çalıştırmak gerekmez - sadece FLUSH gerek Eğer INSERT ile manuel Yetki tablolarını değiştirirseniz, vb SİL

+0

Bakın hangi mysql tablolarının işaretçileri için teşekkürler. Şimdi çalışmayı sil. –