17.00 - 17.05 - オペレーティング システム入出力呼び出しを発行するUDF - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

ここでは、オペレーティング システムの入出力呼び出しを発行するUDFの開発、コンパイル、インストール、および使用の手順の概要を示します。

  1. UDFに必要なオペレーティング システム サービスへのアクセス レベルを判別します。
    UDFのアクセス 結果
    通常のオペレーティング システム ユーザーにアクセス権が付与されているオペレーティング システム リソースにアクセスする場合 このUDFは、'tdatuser' (データベース インストール プロセスで作成されるローカル オペレーティング システム ユーザー)の別個のプロセスとして、保護実行モードで実行できます。
    特定のオペレーティング システム リソースにアクセスする必要がある場合 CREATE AUTHORIZATIONまたはREPLACE AUTHORIZATIONを使用することによって、特定のネイティブ オペレーティング システム ユーザーを識別し、そのユーザーの許可の下、別個のプロセスとして実行することでUDFによる入出力の実行を可能にするコンテキストを作成します。
  2. 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)とリンクされ、システム内のデータベースのすべてのノードに配布されます。

  3. UDFが正しく動作することが確認できるまで、UDFをテストおよびデバッグします。

    Teradata Database用の拡張機能を含むバージョンのGDB(GNU Source-Level Debugger)であるTeradata C/C++ UDF Debuggerを使用できます。詳細については、UDFのデバッグ用C/C++コマンド ラインを参照してください。

  4. 実働データベースにUDFをインストールします。
  5. GRANTを使用して、そのUDFの使用を許可されているユーザーに権限を付与します。