MySQL マニュアルの DEFINER の説明がわかりにくいので、アプリケーションを実行している「実行ユーザー」に必要な権限がわかりません。セキュリティのために、「実行ユーザー」を必要最小限の権限に制限するのが好きです。
トリガー/ストアド プロシージャの作成者には SUPER 権限が必要であることは理解していますが、「実行ユーザー」にも SUPER 権限が必要ですか?
最終的にデータベースへの権限を失ったユーザーの下でトリガーを作成しました。「実行ユーザー」には SUPER 権限がなく、トリガーを持つ MySQL UPDATE が失敗しました。
「実行ユーザー」にSUPER権限を与え、トリガーを削除して作成することでDEFINERをrootに変更したところ、すべて機能しました。「実行ユーザー」に SUPER 権限を付与する必要がありましたか? それとも、DEFINER ユーザーがまだ存在し、SUPER 権限を持っていることを確認する必要がありますか?
MySQL の TRIGGERS と STORED PROCEDURES を使用したユーザー管理のベスト プラクティスは何ですか?