web-dev-qa-db-ja.com

削除を実行するためのSUPER特権をユーザーに要求するMySQL

テーブルに対して削除操作を実行しようとすると、mysqlは次のエラーを報告します。

エラーコード1227:アクセスが拒否されました。この操作にはSUPER権限が必要です。

ただし、私のユーザーには、スキーマ内のすべてのテーブルに付与された次の特権があります。

myschema。*のすべての特権を 'my_admin' @ '%'に付与します

なぜ削除のためのSUPER特権を要求されるのですか?

3
scetoaux

特権の少ないユーザーとしてログインしていないことを確認しますか?ログインしている可能性のあるすべてのユーザーの特権ではなく、ログインしているユーザーの特権を取得します。

[email protected]の権限がmyadmin@%よりも少なく、10.11.12.13からログインしている場合は、前者の権限を取得します。

Mysqlクライアントから\sを実行して、現在の「現在のユーザー」を確認してから、そのユーザーをSHOW GRANTS FORします。

GRANTを実行した後、FLUSH PRIVILEGESを実行したと思います。

3
David M

私も同じ問題を抱えていました。それを引き起こしたのは不完全なインストールでした。 rootパスワードを設定していなかったため、rootアクセスでコマンドラインからmysqlを実行できませんでした。だから私はmysqlを再インストールしました(する必要はありませんでした)-そうそう、最初にmysqldumpを使用してテーブルをバックアップしました:mysqldump --all-databases> huge_dump.dump(これは私にパスワードを要求しませんでした)ここに鍵があります-実行mysql_secure_installationスクリプト:

mysql_secure_installation

Bla Bla Bla --- --rootの現在のパスワードを入力します(noneの場合は入力します)。ルートパスワードをまだ設定していないので、Enterキーを押してください

Rootパスワードを設定しますか? [Y/n] y <---「はい」と言ってください!!新しいパスワード:kick_me_hard新しいパスワードを再入力してください:kick_me_hardパスワードが正常に更新されました!特権テーブルを再ロードしています..。 。 。成功!

これで、phpMyAdminまたはコマンドラインを使用してログインできます。

mysql -u root -p

パスワードを入力してください:kick_me_hardタイプ 'help;'または「\ h」でヘルプを表示blabla bla

mysql>

今、あなたはそれを修正して以来、周りで最もクールな男(ギャル)です。あなただけが周りにいるのでない限り、あなたはまだ周りで最もクールな人です!

2
rich

mysql.*テーブルをご覧ください。そのテーブルに、アクセスを削除するいくつかの権限が設定されている可能性があります。 MySQLの権限は通常そのようには機能しないことは知っていますが、一見の価値があります。

また、テーブルのファイル自体に正しいファイルシステム権限がありますか? MySQLがそれに書き込めない場合、何が問題なのかについてパーミッションサブシステムを混乱させる可能性があります。

0
staticsan

もう1つの可能性は、そのテーブルに対してトリガー(DELETE EVENTなど)がある可能性があることです。そのテーブルの行を削除すると、トリガーが発行されますが、トリガーを実行するにはSUPER特権が必要です。

0
user117765