CONNECT THROUGH文を使用するときは、以下の項目に注意する必要があります。
複数の信頼済みユーザーへのCONNECT THROUGHの付与
永久ユーザーまたはアプリケーション ユーザーに、異なるロールを持つ別々の信頼済みユーザーを介してCONNECT THROUGH権限を付与できます。
次に示すリクエストの例について考察します。どちらの例も、アプリケーション プロキシ ユーザー用です。
GRANT CONNECT THROUGH msi TO debbieg WITH ROLE msirole;
GRANT CONNECT THROUGH tadmin TO debbieg WITH ROLE tadminrole;
上記のリクエストが正常に実行されると、msiroleおよびtadminroleの両方の信頼済みユーザーは、アプリケーション ユーザーdebbiegに対するプロキシ接続権限を所持することになりますが、それぞれのプロキシ接続を実行すると、debbiegの各セッションには異なるロールが設定されます。つまり、信頼済みユーザーmsiroleを介してmsiが設定され、信頼済みユーザーtadminroleを介してtadminが設定されるということです。
CONNECT THROUGHとアクセス ロギング
次に示すようなBEGIN LOGGINGリクエストでロギングを有効にしておくと、システムは各GRANT CONNECT THROUGHリクエストをアクセス ログに記録します。
BEGIN LOGGING ON EACH GRANT;
CONNECT THROUGHと行レベル セキュリティ
プロキシ ユーザーは、行レベル セキュリティで保護されたテーブルに対してSQLリクエストを実行することはできません。
CONNECT THROUGHとパラメータ マーカー
パラメータ マーカーは、GRANT CONNECT THROUGHリクエストではサポートしていません。
CONNECT THROUGHとユーザーDBC
ユーザーDBCを信頼済みユーザーとして指定したり、GRANT CONNECT THROUGHリクエストのプロキシ ユーザーとして指定することはできません。
CONNECT THROUGH trusted_user_name WITH TRUST_ONLY
Teradata Databaseを使用すれば、中間階層アプリケーションでSQLリクエストを信頼済みかそうでないかに分類できます。これにより、電子ホワイトボード経由でSQLコードを挿入または実行することによって、ユーザーがプロキシ ユーザーを変更するリスクが軽減されます。このメカニズムでは、実行依頼するSQLリクエストがアプリケーションによって作成されたものか、ユーザーが作成したものかをアプリケーションが把握していると、暗黙的に仮定しています。
信頼済みユーザーにWITH TRUST_ONLYオプションが設定されていて、SQLリクエストには信頼済みではないというフラグが立っていると、Teradata Databaseは、新しいプロキシ ユーザーを設定したり、現在のプロキシ ユーザーを削除するようなSET QUERY_BANDリクエストを許可したりしなくなります。
Teradata Databaseは、クライアントとサーバーの両方のソフトウェアを介してこれを適用します (Teradataクライアント ソフトウェアの信頼済みセッションの実施とTeradataサーバー ソフトウェアの信頼済みセッションの実施を参照)
独自のSQLコードを作成する中間階層アプリケーションは、非信頼済み(デフォルト)モードで実行できるため、単純な下位互換性が維持されます。
詳細については、<Teradata Vantage™ - Advanced SQL Engineセキュリティ管理ガイド、B035-1100>を参照してください。