17.00 - 17.05 - オペレーティング システム入出力呼び出しを発行する一方で、 SQLを実行しない外部ストアド プロシージャ - 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
日本語 (日本)

ここでは、オペレーティング システム入出力呼び出しを発行する外部ストアド プロシージャの開発、コンパイル、インストール、および呼び出しの手順の概要を示します。

  1. 外部ストアド プロシージャ用のCまたはC++コードを作成し、テストとデバッグを行ないます。

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

  2. 外部ストアド プロシージャに必要なオペレーティング システム サービスへのアクセス レベルを判別します。
    外部ストアド プロシージャ 結果
    通常のオペレーティング システム ユーザーにアクセス権が付与されているオペレーティング システム リソースにアクセスする場合 この外部ストアド プロシージャは、'tdatuser' (Teradata Databaseインストール プロセスで作成されるローカル オペレーティング システム ユーザー)の別個のプロセスとして、保護実行モードで実行できます。
    特定のオペレーティング システム リソースにアクセスする必要がある場合 CREATE AUTHORIZATIONまたはREPLACE AUTHORIZATIONを使用することによって、特定のネイティブ オペレーティング システム ユーザーを識別するコンテキストを作成します。そのユーザーは、その許可の下で外部ストアド プロシージャを別個のプロセスとして実行することにより、外部ストアド プロシージャで入出力が実行可能になるようなユーザーです。
  3. CREATE PROCEDUREまたはREPLACE PROCEDUREを使用して、ソース コード、オブジェクト、またはパッケージの場所を指定し、それを開発またはテスト データベース上にインストールします。

    推奨事項:一般に、SYSLIBやSYSUDTLIBなどのTeradataシステム データベースでは、外部ストアド プロシージャを作成しません。詳細は、C/C++外部ストアド プロシージャのインストールを参照してください。

    ユーザー CREATE PROCEDURE文またはREPLACE PROCEDURE文の動作
    前の手順でCREATE AUTHORIZATIONもREPLACE AUTHORIZATIONも使用しなかった場合 外部ストアド プロシージャのデフォルト実行モードは、保護モードに設定されます。

    外部ストアド プロシージャはtdatuserオペレーティング システム ユーザーの下で実行され、tdatuserにアクセス権が付与されているシステム リソースにアクセスできます。

    前の手順でCREATE AUTHORIZATIONまたはREPLACE AUTHORIZATIONを使用した場合 EXTERNAL SECURITY句を指定することにより、外部ストアド プロシージャの実行を、CREATE AUTHORIZATION文またはREPLACE AUTHORIZATION文で作成したコンテキストに関連付ける必要があります。

    外部ストアド プロシージャは、指定するコンテキストによって識別されるオペレーティング システム ユーザーの下で実行され、そのユーザーにアクセス権が付与されているシステム リソースにアクセスすることができます。

    ソース コードが発行されると、外部ストアド プロシージャがコンパイルされ、外部ストアド プロシージャの属するデータベースに関連するダイナミック リンク ライブラリ(DLLまたはSO)とリンクされ、システム内のTeradata Databaseのすべてのノードに配布されます。

  4. 正しく動作することが確認できるまで、開発またはテストTeradata Databaseで、外部ストアド プロシージャをテストします。
  5. 外部ストアド プロシージャを実働Teradata Databaseにインストールします。
  6. GRANTを使用して、その外部ストアド プロシージャの使用を許可されているユーザーに権限を付与します。