ユーザーがprocedure_nameに割り当てる任意指定のSQLセキュリティ権限セット。
権限のオプションの説明については、<Teradata Vantage™ - SQLデータ定義言語 - 詳細トピック、B035-1184>の「CREATE PROCEDURE (SQL形式)」をを参照してください。
privilege_optionに指定するキーワードは、リクエストで指定された基になるオブジェクトに対してVantageが検証する権限を判別します。
すべてのプロシージャには、次のルールが適用されます。
- プロシージャの文から参照されるオブジェクトは、WITH GRANT OPTION権限を必要としません。参照されるオブジェクトに必要なのは、GRANT権限のみです。
- Vantageは、実行中にDDLリクエストのCREATOR権限とOWNER権限を検証します。
- CREATOR
- プロシージャが含むデータベースまたはユーザーかどうかに関係なくプロシージャの作成者の権限を割り当てます。
- DEFINER
- プロシージャの定義元の権限を割り当てます。これはデフォルトの権限オプションです。
- Vantageは、プロシージャが明示的にまたはデフォルトでDEFINERとして定義されている場合、例えば、プロシージャのCREATORがそのOWNERではない場合、プロシージャを次のように処理します。
- Vantageは、プロシージャのコンパイル中にCREATORの権限を検証します。CREATORには、プロシージャの文により参照されるオブジェクトに対する適切な権限が必要です。
- Vantageはコンパイル中にOWNER、つまりプロシージャを含むデータベースまたはユーザーの権限を検証します。OWNERには、プロシージャの文により参照されるオブジェクトに対する適切な権限が必要です。
- 実行中に、Vantageはプロシージャのすべての文により参照されるオブジェクトのOWNER権限を検証します。適切な権限がないことが原因でアクセスに失敗した場合、プロシージャにエラーが返されます(そのように記述されている場合には扱うことができます)。
- Vantageは、CREATORとは異なるデータベースまたはユーザーによって作成されたUDFにDROPおよびEXECUTE権限を付与します。OWNERは、所有するすべてのオブジェクトを削除する暗黙的な権限を必ず持つ必要があります。OWNERがUDFを実行する場合は、その関数にEXECUTE FUNCTION権限を付与する必要があります。
- INVOKER
- 現在の実行スタックの最上位にあるユーザーの権限を割り当てます。
- OWNER
- プロシージャの所有者の権限を割り当てます。この権限は、そのプロシージャの格納先データベースまたはユーザーにより所有されている権限です。
- デフォルトのデータベースまたはユーザー以外のデータベースまたはユーザーに対してSQLプロシージャの作成を許可するCREATE OWNER PROCEDURE権限が明示的に付与されていない限り、この句にはOWNERオプションを指定できません。