信頼済みユーザー アプリケーションとプロキシ ユーザーの設定(推奨) - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ NewSQL Engineセキュリティ管理

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/rmm1512082852218.ditamap
dita:ditavalPath
ja-JP/rmm1512082852218.ditaval
dita:id
B035-1100
Product Category
Software
Teradata Vantage

各アプリケーションのログオン ユーザーを設定するだけでなく、アプリケーション エンド ユーザーがそれぞれの識別情報とロール権限を使用してデータベースにログオンできるように、オプションで、アプリケーションを信頼済みユーザーとして設定した後、プロキシ ユーザーを定義することができます。

  1. アプリケーションの永久データベース ユーザー(例えば、App1User)を作成します。
  2. アプリケーション ログオン ユーザーのプロファイルを作成します。
    1. アプリケーション パスワードの期限切れにより起きる可能性のある、アプリケーション エンド ユーザーに提供されるサービスの中断を防止するために、プロファイルでPASSWORDオプションを使用して、アプリケーションのPasswordExpireパラメータを0に設定します。
    2. すべてのアプリケーション エンド ユーザーに行レベル セキュリティ制約を適用する場合は、アプリケーション ユーザー プロファイルにRLS制約を割り当てることができます。 CREATE PROFILE文でのセキュリティ制約の割り当てを参照してください。
  3. アプリケーション(プロキシ)ユーザーにさまざまなデータベース権限を定義するためのロールを作成します。
  4. 永久データベース ユーザーでもあるプロキシ ユーザーに対しては、行レベル セキュリティ制約が使用されていれば、オプションで永久ユーザー プロファイルを変更して行レベル セキュリティ制約を割り当てることができます。 CREATE PROFILE文でのセキュリティ制約の割り当てを参照してください。
  5. 信頼済みユーザー アプリケーションを設定するユーザーにCTCONTROL権限を付与します。例:
    GRANT CTCONTROL ON  trusted_user_name  TO  user_name  ;
    永久データベース ユーザーにGRANT CONNECT THROUGH権限を発行する管理者には、永久ユーザーに対するDROP USER権限が必要です。
  6. 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オプションを指定している場合、同じ要求内でプロキシ ユーザーを作成することはできません。

    この機能を使用するには、タグ リクエストに信頼済みまたは非信頼済みとしてクエリー バンドを設定する必要があります。
  7. 各プロキシ ユーザー セッションを開始し、プロキシ ユーザーを識別し、オプションで、セッションまたはトランザクションで使用するプロキシ ユーザー ロールを指定するには、Teradata DatabaseにSET QUERY_BAND文を送信するようにアプリケーションを設定する必要があります。

    SET QUERY BAND文を使用してセッション プロキシ ロールを有効にするおよびTeradataオレンジ ブック<Using Query Banding in the Teradata Database>を参照してください。