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