ホームページ >データベース >mysql チュートリアル >phpMyAdmin で関数を作成するときに「エラー: アクセスが拒否されました。この操作には SUPER 権限が必要です」というメッセージが表示されるのはなぜですか?

phpMyAdmin で関数を作成するときに「エラー: アクセスが拒否されました。この操作には SUPER 権限が必要です」というメッセージが表示されるのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-31 17:13:301032ブラウズ

Why Am I Getting

エラー: アクセスが拒否されました: phpMyAdmin で関数を作成

phpMyAdmin で関数を作成するために SQL クエリを実行すると、ユーザーは「エラー:アクセスが拒否されました。この操作には SUPER 権限が必要です。」というメッセージが表示されます。このエラーは権限要件に起因します。

問題の特定

このエラーは 2 つの主な問題によって発生する可能性があります。

  1. Missing CREATE ROUTINE 権限: MySQL 5.0.3 以降では、CREATE PROCEDURE および CREATE FUNCTION クエリを実行するために CREATE ROUTINE 権限が必要です。
  2. DEFINER 制限事項: DEFINER 属性は、所有者であるユーザーを指定します。ストアド プロシージャまたは関数。 DEFINER が制限付きユーザーに設定されている場合、呼び出し元はオブジェクトを作成するための SUPER 権限を持っている必要があります。

解決策

DEFINER 属性の削除:

SUPER 権限の必要性を排除するには、SQL クエリから DEFINER 属性を削除します。これにより、関数の所有権が現在のユーザーに付与されます。

<code class="sql">CREATE FUNCTION `f_calc_gst`(p_ht decimal(15,3), p_province varchar(2)) RETURNS varchar(255) CHARSET utf8
...</code>

phpMyAdmin の区切り文字フィールドを設定します:

変更したクエリを実行する前に、区切り文字フィールドがphpMyAdmin の SQL テキスト ボックスで正しく設定してください。

追加メモ:

  • バイナリ ログには SUPER 権限が必要な場合があります。
  • 関数が作成されると、ユーザーは他のユーザーまたはロールに特定の権限を付与できます。

以上がphpMyAdmin で関数を作成するときに「エラー: アクセスが拒否されました。この操作には SUPER 権限が必要です」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。