プロキシ ユーザー接続を作成するには、信頼済みユーザーとして接続された中間層アプリケーションが、プロキシ ユーザー名とそのユーザーに対するオプションのプロキシ ロールを指定したSET QUERY_BANDリクエストを発行します。予約されたクエリー バンド名PROXYUSERとPROXYROLEは、それぞれ信頼済みセッションのユーザー名とプロキシ ロール名をSET QUERY_BANDリクエストで指定するために使用します。
プロキシ ユーザー接続を作成する場合には、SET QUERY_BANDリクエストは次に示すアクションを実行します。
- クエリー バンドがPROXYUSERを指定した場合、Teradata Databaseは指定されたプロキシ ユーザーとして接続する権限を現在のユーザーが持っていることを検証します。
- クエリー バンドがPROXYROLEを指定した場合、Teradata Databaseは指定されたプロキシ ユーザーにロールを設定できるか検証します。
- 検証に合格した場合に、Teradata Databaseはセッションを指定のプロキシ ユーザー名およびプロキシ ロール名に設定します。
プロキシ接続が作成されると、Teradata Databaseはプロキシ ユーザーとプロキシ ロールを使用して、そのセッションで後続のすべてのリクエストに対する権限を決定します。
以下の情報に注意する必要があります。
- 信頼済みセッションは、クエリー バンドがなくなるまで続きます。
- セッション用クエリー バンドはセッションに設定されたまま存続し、次のいずれかの場合にのみ終了します。
- セッションが終了する。
- クエリー バンドにNONEを設定する。
- セッション用クエリー バンドはDBC.SessionTblに格納され、システム リセット後にTeradata Databaseによって回復されます。
- トランザクション用クエリー バンドは、次のいずれかの場合に破棄されます。
- コミット、ロールバックまたはアボートによりトランザクションが終了する。
- トランザクション用クエリー バンドがNONEに設定され、システム リセットの後に復元されない。
SET QUERY_BANDリクエストは、次に示す違反が発生すると常にエラーを返します。
- プロキシ ユーザーが、信頼済みユーザーによるCONNECT THROUGH権限を持っていない。
- プロキシ ユーザーが、指定されたプロキシ ロールの権限を付与されていない。
- セッションの信頼済みセッションがすでに存在するときに、リクエストによってトランザクションにPROXYUSERを設定しようとした。
- トランザクションのプロキシ接続がすでに存在するときに、リクエストによってセッションにPROXYUSERを設定しようとした。
- 信頼済みセッションではないときに、リクエストによってPROXYROLEを設定しようとした。
- GRANT CONNECT THROUGH権限で信頼済みユーザーのロールが定義されているときに、リクエストによってPROXYROLEをNONEまたはNULLに設定しようとした。