MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
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
権限がルーチンを含むスコープで付与されている場合、アカウントはその定義を除くすべてのルーチンプロパティを表示できます。