保護モードのUDF(セキュア モードのUDFを含む)は、サーバーと呼ばれる別個のプロセスのもとで実行されます。外部のセキュリティを必要とする構成のUDFは、セキュア モードと呼ばれる、保護モードのサブタイプで実行されます。システムは、保護モードとセキュア モードの両方の関数をサポートするために、別個のプロセス(つまりサーバー)を設定します(詳細については<Teradata Vantage™- SQL外部ルーチン プログラミング、B035-1147>を参照)。
セッションで最初にセキュア モードのUDFを呼び出すと、以下の一連のイベントが発生します(このプロセスは、保護モードのUDFの場合と基本的に同じです)。
- UDFサーバー設定ロジックが許可情報を調べ、OSユーザーの許可のために設定済みのセキュア サーバー プロセスがあるかどうかを判別します。
セッションの中でUDFが呼び出されたのはこれが初めてなので、設定済みのセキュア サーバー プロセスはありません。
- ユーザー名とパスワードを確認します。
- セキュア サーバー プロセスを作成し、UDFを実行します。
セッションでUDFが実行されるのがこれで初めてではない場合、以下の一連のイベントが生じます。
- UDFセキュア サーバー設定ロジックが許可情報を読み、この許可で設定済みのセキュア サーバー プロセスがすでにあることを判別します。
- UDFは既存のセキュア サーバーを使って実行されます。
最大数のセキュア サーバーが作成済みのところに、確立済みのセキュア サーバーを持たない所定の許可の新規リクエストが出された場合、以下の一連のイベントが生じます。
- UDFセキュア サーバー ロジックが、所定の許可のセキュア サーバーを見つけようとします。しかしそれを見つけることができず、最大数のセキュア サーバーが設定済みであることを判別します。
- 許可が設定されていないため、プロセスはユーザー名とパスワードを検証することにより、OSユーザーを検証します。
指定された許可情報を使ってログオンしようとして失敗する場合、システムはセッションにエラーを返します。
- UDFセキュア サーバー ロジックは最も使用度の低いセキュア サーバー プロセスを見つけて、それを終了します。
- 新しいセキュア サーバー プロセスが作成され、UDFが実行されます。