8

データベース内の1つのテーブルをユーザーが完全に制御できるようにしました。ただし、レコードを削除できないようです。

私は特権ユーザーとして試しました:

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

しかし、stilの削除は機能しません

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

何か案は?

乾杯、

ネイサン。

4

1 に答える 1

11

GRANTステートメントでは、ユーザー名に追加の引用符が必要になる場合があります'username'@'%'

データベースでユーザーの権限を確認できmysqlます。user表、、、をdb確認してhostsくださいtables_priv

'username'@'localhost'や'username'@'%'のように、同じユーザー名と異なるホスト名のエントリがある場合があります。

MySQL-Documentationは、MySQLがこれらのテーブルを評価する順序を説明しています。

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

テーブルtables_privにユーザーが許可するエントリがある場合DELETE、通常はそれで十分です。

FLUSH PRIVILEGESAFAIKの後に実行する必要はありません-INSERT 、DELETEなどを使用して特権テーブルを手動で変更する場合GRANTにのみ実行する必要があります。FLUSH

于 2010-10-08T16:21:00.420 に答える