ここでは、オペレーティング システムの入出力呼び出しを発行するUDFの開発、コンパイル、インストール、および使用の手順の概要を示します。
- UDFに必要なオペレーティング システム サービスへのアクセス レベルを判別します。
UDFのアクセス 結果 通常のオペレーティング システム ユーザーにアクセス権が付与されているオペレーティング システム リソースにアクセスする場合 このUDFは、'tdatuser' (データベース インストール プロセスで作成されるローカル オペレーティング システム ユーザー)の別個のプロセスとして、保護実行モードで実行できます。 特定のオペレーティング システム リソースにアクセスする必要がある場合 CREATE AUTHORIZATIONまたはREPLACE AUTHORIZATIONを使用することによって、特定のネイティブ オペレーティング システム ユーザーを識別し、そのユーザーの許可の下、別個のプロセスとして実行することでUDFによる入出力の実行を可能にするコンテキストを作成します。 - CREATE FUNCTION文またはREPLACE FUNCTION文を使用して、ソース コード、オブジェクト、またはパッケージの場所を指定し、それを開発データベースまたはテスト データベースにインストールします。
推奨事項:一般に、SYSLIBやSYSUDTLIBなどのTeradataシステム データベースでは、UDFを作成しません。詳細については、関数のインストールを参照してください。
ユーザー CREATE FUNCTION文またはREPLACE FUNCTION文の動作 前の手順でCREATE AUTHORIZATIONもREPLACE AUTHORIZATIONも使用しなかった場合 UDFのデフォルト実行モードは、保護モードに設定されます。 UDFはtdatuserオペレーティング システム ユーザーのもとで実行され、tdatuserにアクセス権が付与されているシステム リソースにアクセスできます。
前の手順でCREATE AUTHORIZATIONまたはREPLACE AUTHORIZATIONを使用した場合 EXTERNAL SECURITY句を指定することにより、UDFの実行を、CREATE AUTHORIZATION文またはREPLACE AUTHORIZATION文で作成したコンテキストに関連付ける必要があります。 UDFは、指定するコンテキストによって識別されるオペレーティング システム ユーザーの下で実行され、そのユーザーにアクセス権が付与されているシステム リソースにアクセスすることができます。
ソース コードが発行されると、関数がコンパイルされ、関数の属するデータベースに関連するダイナミック リンク ライブラリ(DLLまたはSO)とリンクされ、システム内のデータベースのすべてのノードに配布されます。
- UDFが正しく動作することが確認できるまで、UDFをテストおよびデバッグします。
Teradata Database用の拡張機能を含むバージョンのGDB(GNU Source-Level Debugger)であるTeradata C/C++ UDF Debuggerを使用できます。詳細については、UDFのデバッグ用C/C++コマンド ラインを参照してください。
- 実働データベースにUDFをインストールします。
- GRANTを使用して、そのUDFの使用を許可されているユーザーに権限を付与します。