このページは機械翻訳したものです。
MySQL 許可システムはストアドルーチンを次のように考慮します。
ストアドルーチンを生成するには、
CREATE ROUTINE権限が必要です。ストアドルーチンを変更または削除するには、
ALTER ROUTINE権限が必要です。 この権限は、必要に応じて、ルーチンの作成者に自動的に与えられ、ルーチンが削除されると作成者から削除されます。ストアドルーチンを実行するには、
EXECUTE権限が必要です。 ただし、この権限は、必要に応じて、ルーチンの作成者に自動的に与えられます (ルーチンが削除されると作成者から削除されます)。 また、ルーチンのデフォルトのSQL SECURITY特性はDEFINERであり、これにより、ルーチンが関連付けられているデータベースにアクセス可能なユーザーがルーチンを実行できるようになります。automatic_sp_privilegesシステム変数が 0 である場合、EXECUTEおよびALTER ROUTINE権限は作成者に対して自動的には付与および削除されません。ルーチンの作成者は、ルーチンの
CREATEステートメントを実行するために使用されるアカウントです。 これは、ルーチン定義でDEFINERとして名前が指定されているアカウントと同じでないことがあります。-
ルーチン
DEFINERとして指定されたアカウントは、その定義を含むすべてのルーチンプロパティーを表示できます。 したがって、アカウントは、次によって生成されるルーチン出力への完全なアクセス権を持ちます:INFORMATION_SCHEMA.ROUTINESテーブルの内容。SHOW CREATE FUNCTIONおよびSHOW CREATE PROCEDUREステートメント。SHOW FUNCTION CODEおよびSHOW PROCEDURE CODEステートメント。SHOW FUNCTION STATUSおよびSHOW PROCEDURE STATUSステートメント。
-
ルーチン
DEFINERとして指定されたアカウント以外のアカウントのルーチンプロパティーへのアクセスは、アカウントに付与された権限によって異なります:SHOW_ROUTINE権限またはグローバルSELECT権限を持つアカウントは、その定義を含むすべてのルーチンプロパティを表示できます。CREATE ROUTINE、ALTER ROUTINEまたはEXECUTE権限がルーチンを含むスコープで付与されている場合、アカウントはその定義を除くすべてのルーチンプロパティを表示できます。