この句はオペレーティング システムI/Oを実行するすべての関数で必須です。I/Oを実行する関数にこの句を指定しないと、予期しない結果が生成されることがあり、(システム全体ではないものの)データベースがリセットされてしまうことさえあります。CREATE AUTHORIZATIONおよびREPLACE AUTHORIZATIONを参照してください。
authorization_nameは、ANSI SQL:2011規格に対するTeradataのオプションの拡張機能です。
- 関数に関連付けられる外部セキュリティ許可は、その関数と同じデータベース内に存在する必要があります。
- 関数定義がEXTERNAL SECURITY DEFINERを指定すると、その関数は、そのユーザーのコンテキストを使った外部許可に関連付けられたOSユーザーの下で実行されます。
UDFモード OSユーザー 保護モード tdatuser (tdatudf OSグループのメンバーでなければならない)。 セキュア モード CREATE AUTHORIZATION文を使って許可名に割り当てられたOSユーザー。 指定されたOSユーザーはtdatudf OSグループに属していなければなりません。
何らかの理由でこれを変更する必要がある場合は、Teradata技術サポートに問合わせてください。
次のルールが適用されます。
- 許可名を指定しない場合は、ユーザーが関数の実行を試行する前にデフォルトのDEFINER許可名を作成する必要があります。
- 許可名を指定した場合は、関数を実行する前にその名前の許可オブジェクトを作成する必要があります。
UDFの作成時に許可名が存在しない場合、システムはリクエスト側に警告メッセージを返します。