この句はオペレーティング システムI/Oを実行するすべての外部プロシージャで必須です。I/Oを実行するプロシージャにこの句を指定しないと、予期しない結果が生成されることがあり、(システム全体ではないものの)データベースがリセットされてしまうことさえあります。
authorization_nameは、ANSI SQL:2011規格に対するTeradataのオプションの拡張機能であることに注意する必要があります。
プロシージャ定義がEXTERNAL SECURITY DEFINERを指定すると、そのプロシージャは次のいずれかの環境で実行されます。
- その目的で作成された、関連するセキュリティ文の指定されたOSプラットフォーム ユーザーのコンテキスト。
- プロシージャが定義されているのと同じデータベースまたはユーザー。
次のルールが適用されます。
- 許可名を指定しない場合は、ユーザーがメソッドの実行を試行する前にデフォルトのDEFINER許可名を作成する必要があります(CREATE AUTHORIZATIONおよびREPLACE AUTHORIZATIONを参照)。
- 許可名を指定した場合は、プロシージャを実行する前にその名前のオブジェクトを作成しなければなりません。
プロシージャの作成時に許可名が存在しない場合、システムはリクエスト側に警告メッセージを返します。