以下に、Java UDFの開発、コンパイル、インストール、および呼び出しの手順の概要を示します。各手順の詳細については、後に続くセクションを参照してください。
- UDFのJavaソース コードをデータベース外で記述、テスト、およびデバッグし、結果のクラスをJARまたはZIPファイル(合わせてアーカイブ ファイルと呼ぶ)に配置します。
- SQLJ.INSTALL_JAR外部ストアド プロシージャを呼び出してアーカイブ ファイルとクラスをデータベースに登録し、SQL識別子をJARまたはZIPファイルに提供します。
- UDFに必要なオペレーティング システム サービスへのアクセス レベルを判別します。
UDFのアクセス 結果 ローカル ファイルにアクセスせず、特別な権限を必要とする制限アクションを実行しない。 UDFは、Javaハイブリッド サーバーのスレッドとして保護実行モードで実行できます。 Teradata Databaseは、各ノードに対して1つのJavaハイブリッド サーバーを作成し、そのサーバーはノード上のすべてのAMPとPEに対して複数のJava外部ルーチンのスレッドを実行します。
セキュリティ上の観点から、ハイブリッド サーバーとそのすべてのリソース(共有マップ ファイルやイベントなど)は、オーナーおよびTeradata Databaseのインストール プロセスが作成するローカルのオペレーティング システムのユーザーとして'tdatuser'を使用します。
普通のオペレーティング システムのユーザーが権限を持つローカル ファイルやアクションに対するアクセスと実行を行なう。 特別な権限を必要とする特定のリソースに対するアクセスを必要とする。 CREATE AUTHORIZATIONまたはREPLACE AUTHORIZATIONを使用することによって、特定のネイティブ オペレーティング システム ユーザーを識別するコンテキストを作成します。そのユーザーは、その許可の下でUDFを自身のセキュア サーバーを用いることにより、UDFでリソースにアクセス可能になるようなユーザーです。 - Java UDFに関する特定の情報を提供するオプションを持つCREATE FUNCTIONまたはREPLACE FUNCTIONを使用します。
オプション 説明 LANGUAGE JAVA UDFのソース コード言語を識別します。 PARAMETER STYLE JAVA パラメータ スタイルを示します。 EXTERNAL NAME UDFがSQL文で呼びされる際に、実行されるJARまたはZIPファイルの登録名、JARまたはZIPファイル内のJavaクラス、およびクラス内のJavaメソッドを提供します。 EXTERNAL SECURITY (オプション) UDFの実行を、前の手順でCREATE AUTHORIZATIONまたはREPLACE AUTHORIZATION文によって作成されたコンテキストと関連付けます。 - UDFが正しく動作することが確認できるまで、Teradata DatabaseでUDFをテストします。
- GRANTを使用して、そのUDFの使用を許可されているユーザーに権限を付与します。