各アプリケーションのログオン ユーザーを設定するだけでなく、アプリケーション エンド ユーザーがそれぞれの識別情報とロール権限を使用してデータベースにログオンできるように、オプションで、アプリケーションを信頼済みユーザーとして設定した後、プロキシ ユーザーを定義することができます。
- アプリケーションの永久データベース ユーザー(例えば、App1User)を作成します。
- アプリケーション ログオン ユーザーのプロファイルを作成します。
- アプリケーション パスワードの期限切れにより起きる可能性のある、アプリケーション エンド ユーザーに提供されるサービスの中断を防止するために、プロファイルでPASSWORDオプションを使用して、アプリケーションのPasswordExpireパラメータを0に設定します。
- すべてのアプリケーション エンド ユーザーに行レベル セキュリティ制約を適用する場合は、アプリケーション ユーザー プロファイルにRLS制約を割り当てることができます。 CREATE PROFILE文でのセキュリティ制約の割り当てを参照してください。
- アプリケーション(プロキシ)ユーザーにさまざまなデータベース権限を定義するためのロールを作成します。
- 永久データベース ユーザーでもあるプロキシ ユーザーに対しては、行レベル セキュリティ制約が使用されていれば、オプションで永久ユーザー プロファイルを変更して行レベル セキュリティ制約を割り当てることができます。 CREATE PROFILE文でのセキュリティ制約の割り当てを参照してください。
- 信頼済みユーザー アプリケーションを設定するユーザーにCTCONTROL権限を付与します。例:
GRANT CTCONTROL ON trusted_user_name TO user_name ;
永久データベース ユーザーにGRANT CONNECT THROUGH権限を発行する管理者には、永久ユーザーに対するDROP USER権限が必要です。 - GRANT CONNECT THROUGH文を使用して、信頼済みユーザーを定義し、プロキシ ユーザーおよびプロキシ ロールを関連付けます。例:
- すでにデータベースで定義されているユーザー(永久ユーザー)の場合:
GRANT CONNECT THROUGH trusted_user_name TO PERMANENT perm_user_name [, perm_user_name] WITH ROLE role_name [,role_name] | WITHOUT ROLE;
- データベースに認識されないアプリケーション ユーザーの場合:
GRANT CONNECT THROUGH trusted_user_name TO app_user_name [, app_user_name] WITH ROLE role_name [, role_name];
- 信頼済みユーザー アプリケーションを介したSET QUERY_BAND文の使用を、信頼済みリクエストに含まれているSET QUERY_BAND文に限定するには:
GRANT CONNECT THROUGH trusted_user_name [WITH TRUST_ONLY] ;
説明:
構文要素 説明 trusted_user_name Teradata Databaseにログオンし、セッション プールを確立するときにアプリケーションが使用する永久ユーザー名。 このユーザーは、GRANT CONNECT THROUGH文で参照される前にデータベースに存在している必要があります。
perm_user_name プロキシ ユーザーとして定義される永久データベース ユーザーの名前。 ユーザーを永久ユーザーとして識別するには、perm_user_nameの前にTO PERMANENT句を記述する必要があります。GRANT CONNECT THROUGH文でユーザーを参照するには、そのユーザーがデータベース内に存在する必要があります。
1つのGRANT CONNECT THROUGH文で最大25名の永久ユーザーを指定できます。trusted_user_nameのプロキシ ログオン権限を付与できる永久ユーザーの数に制限はありません。
app_user_name プロキシ ユーザーとして定義されるアプリケーション エンド ユーザーの名前。 app_user_nameの前にTO句を記述して、ユーザが永久データベースユーザではないと識別しないようにする必要があります。app_user_nameに関連付けるユーザーはデータベースに存在しませんが、名前はTeradata Databaseオブジェクトの命名規則に従っている必要があります。
1つのGRANT CONNECT THROUGH文で最大25名のアプリケーション ユーザーを指定できます。trusted_user_nameのプロキシ ログオン権限を付与できるアプリケーション ユーザーの数に制限はありません。
WITH ROLE role_name GRANT CONNECT THROUGH文に含まれているプロキシ ユーザーが利用できるロール名を列挙します。 アプリケーション エンド ユーザーにプロキシ ユーザーのステータスを割り当てるGRANT CONNECT THROUGH文で、少なくとも1つのロール名を指定する必要があります。role_nameはデータベース内に存在するロールを識別する必要があります。 ALL、NONEおよびNULLは、無効なロール名になります。
1つのGRANT CONNECT THROUGH文で最大15個のロール名を指定でき、1組のプロキシ ユーザー名/信頼済みユーザー名のペアにつき最大15個のロール名を指定できます。
perm_user_nameまたはapp_user_nameに対応する特定の信頼済みユーザーのCONNECT THROUGH権限がすでに存在する場合、データベースは指定されたすべての新しいロールを既存のロールに追加します。
ユーザー ロールの15という制限を超えた場合、文の実行は中止されます。
信頼済みユーザーのプロキシ ユーザーからロールを削除するには、REVOKE CONNECT THROUGH文を使用します。
プロキシ接続でロールを指定する方法および指定がプロキシ ユーザー権限に及ぼす影響については、 SET QUERY BAND文を使用してセッション プロキシ ロールを有効にするを参照してください。
WITHOUT ROLE proxy_user_nameが永久データベース ユーザーである場合、プロキシ ユーザーはロールを含む永久ユーザーのアクセス権限を継承します。 app_user_nameを指定するGRANT CONNECT THROUGH文でWITHOUT ROLEを使用しないでください。WITH TRUST_ONLY プロキシ ユーザーを設定または更新するSET QUERY_BAND文が信頼済み要求の一部である場合にのみSET QUERY_BAND文を順守するようデータベースに指示します。 WITH TRUST_ONLYオプションを指定している場合、同じ要求内でプロキシ ユーザーを作成することはできません。
この機能を使用するには、タグ リクエストに信頼済みまたは非信頼済みとしてクエリー バンドを設定する必要があります。 - すでにデータベースで定義されているユーザー(永久ユーザー)の場合:
- 各プロキシ ユーザー セッションを開始し、プロキシ ユーザーを識別し、オプションで、セッションまたはトランザクションで使用するプロキシ ユーザー ロールを指定するには、Teradata DatabaseにSET QUERY_BAND文を送信するようにアプリケーションを設定する必要があります。
SET QUERY BAND文を使用してセッション プロキシ ロールを有効にするおよびTeradataオレンジ ブック<Using Query Banding in the Teradata Database>を参照してください。