GRANT CONNECT THROUGH - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ制御言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/lmb1556233084626.ditamap
dita:ditavalPath
ja-JP/lmb1556233084626.ditaval
dita:id
B035-1149
Product Category
Software
Teradata Vantage

指定の信頼済みユーザーを介してプロキシ永久ユーザーまたはプロキシ アプリケーション ユーザーとして接続するための権限を付与します。DBC.ConnectRulesTblに情報を保管します。

この文では、指定の信頼済みユーザーに次を実行する権限を付与します。
  • 指定の永久ユーザーまたはアプリケーション ユーザーとして接続する。
  • 指定の永久ユーザーまたはアプリケーション ユーザーのロールを設定する。

指定の信頼済みユーザーには、SET QUERY_BANDリクエストでの定義で指定したプロキシ ユーザー名のIDをアサートするための権限が付与されます。<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>の「SET QUERY_BAND」を参照してください。

必要な権限

GRANT CONNECT THROUGHリクエストを実行するには、CTCONTROL権限が必要です。

CTCONTROLの詳細については、CTCONTROL権限を参照してください。

また、リクエストのWITH ROLE句で指定した各ロールに対するWITH ADMIN OPTION権限も必要です。

PERMANENTプロキシ ユーザーとして指定した各ユーザーに対するDROP USER権限が必要です。

構文

GRANT CONNECT THROUGH trusted_user_name [ WITH TRUST ONLY ]
  TO {
       application_user_name [,...]
         {
           WITH ROLE role_name [...] [ WITH PROFILE profile_name ] |
           WITH PROFILE profile_name
         } |

        PERMANENT permanent_user_name [,...]
          { WITH ROLE profile_name [,...] | WITHOUT ROLE }
  } [;]

構文要素

trusted_user_name
CONNECT THROUGH権限を受領するユーザーの名前。
trusted_user_nameは、Teradata Databaseで定義済みの永久ユーザーの名前にする必要があります。ただし、ユーザーDBCにすることはできません。
これにより、指定の信頼済みユーザーは、指定のプロキシ ユーザー名のIDをアサートするための権限を付与されます。
trusted_user_nameは、エンド ユーザーを識別すべきではありません。これは、CRMアプリケーションやTeradata Viewpointなどの中間階層アプリケーションを識別するためのものです。
trusted_user_name WITH TRUST_ONLYを指定する場合、application_user_name WITH ROLEまたはpermanent_user_name WITH ROLEまたはWITHOUT ROLEを同じリクエスト内で指定することはできません。
WITH TRUST_ONLY
プロキシ ユーザーまたはプロキシ ロールを設定または削除するリクエストは、すべて信頼済みのリクエストでなければならないことをtrusted_user_nameに対してリクエストします。
このオプションでは、エンド ユーザーがSET QUERY_BANDリクエストをSQLストリームに挿入したり、ホストしている中間階層アプリケーションに認識されることなくプロキシ ユーザーまたはプロキシ ロールの設定が変更されることを防ぐ手段を提供します。
application_user_name
trusted_user_nameを介してプロキシ ログオン権限が付与されるアプリケーション ユーザーの名前。
同じリクエスト内でWITH TRUST_ONLYオプションを指定している場合、application_user_nameの指定は無効になります。
中間階層アプリケーションの各エンド ユーザーに、永久ユーザーを作成することが現実的に不可能な状況では、アプリケーション ユーザー名はいつでも指定できます。
アプリケーション ユーザー名はTeradata Database内では定義されませんが、Teradataオブジェクトの命名規則に従う必要があります。クライアント名やATM識別子など、中間階層に接続するクライアントを表現するものであれば何でも、アプリケーション ユーザー名になりえます。
application_user_nameは、指定したtrusted_user_nameに対して固有である必要があります。
application_user_nameの詳細については、アプリケーション プロキシ ユーザーを参照してください。
GRANT CONNECT THROUGHリクエストごとに最大25個のアプリケーション ユーザー名を指定できますが、信頼済みユーザーへのログオン権限が付与されるアプリケーション ユーザー名の数に制限はありません。
システムは、trusted_user_nameのCONNECT THROUGH権限に指定した名前を追加します。
指定するアプリケーション プロキシ ユーザーごとに、少なくとも1つのロールをWITH ROLE句で指定する必要があります。
permanent_user_name
trusted_user_nameを介してプロキシ ログオン権限が付与される永久ユーザーの名前。
同じリクエスト内でWITH TRUST_ONLYオプションを指定している場合、permanent_user_nameの指定は無効になります。
permanent_user_nameは、永久Teradataユーザーの名前にする必要があります。ただし、ユーザーDBCにすることはできません。
permanent_user_nameは、指定したtrusted_user_nameに対して固有である必要があります。
permanent_user_nameの詳細については、永久プロキシ ユーザーを参照してください。
GRANT CONNECT THROUGHリクエストごとに最大25個の名前を指定できますが、信頼済みユーザーへのログオン権限が付与される永久ユーザー名の数に制限はいいえ
システムは、trusted_user_nameのCONNECT THROUGH権限に指定した名前を追加します。
WITH ROLE role_name
プロキシ接続に割り当てるロール名のセット。
同じリクエスト内でWITH TRUST_ONLYオプションを指定している場合、WITH ROLE role_nameの指定はないになります。このオプションは、アプリケーション ユーザーまたは永久ユーザーに対して指定された場合にのみ有効です。
role_nameに指定する文字列は、事前にTeradata Databaseで定義されている内部ロールの名前にする必要があります。内部ロールは、ディレクトリ管理の外部ロールではなく、<Teradata Database>で管理されるロールを指します。<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>の「CREATE ROLE」を参照してください。
この文脈では、ALL、NONEおよびNULLは、無効なロール名になります。
アプリケーション プロキシ ユーザーには、少なくとも1つのロール名を指定する必要がありますが、永久プロキシ ユーザーにはWITHOUT ROLEを指定することもできます。
プロキシ ユーザーごとに最大15個のロール名を指定できます。永久ユーザー名およびアプリケーション ユーザー名の制限条件とは異なり、この数はプロキシ ユーザーごとの絶対最大数です。リクエストごとの最大数ではありません。
指定のtrusted_user:permanent_userまたはtrusted_user:application_user名前ペアにCONNECT THROUGH権限がすでに存在していた場合、システムは既存のCONNECT THROUGH権限に指定されたロールを追加します。
CONNECT THROUGH権限に加えた変更はすぐに有効になります。そのため、CONNECT THROUGH権限に変更を加えた後にプロキシ接続で実行される後続のリクエストでは、新しい権限定義が採用されます。
ロールを削除すると、そのロールはCONNECT THROUGH権限の定義から削除されるため、存在しないロールに定義したルールだけが残されることがあります。WITH ROLE句により設定された権限を持つプロキシ ユーザーのロールが後から削除されると、そのユーザーにはPUBLIC権限のみが付与されます。
新しいロールの追加によって権限に割り当てられたロールの数が15を超過する場合、そのリクエストはアボートされ、システムはリクエスト元にエラーを返します。このような事態が発生したときには、適切なREVOKE CONNECTリクエストを実行して、1つ以上のロールを権限から削除してください。
この文の使用法の詳細について、REVOKE CONNECT THROUGHを参照してください。
Teradata DatabaseはWITH ROLE句で指定されたすべてのロール名を、デフォルトでアクティブ化するか、プロキシ接続をPROXYROLE=ALLに設定したときにアクティブ化します。
プロキシ接続にPROXYROLE=role_nameを指定した場合、指定するロール名はWITH ROLE句でプロキシ ユーザーに指定したロールのいずれかにする必要があります。これにより、Teradata Databaseは、このロールをプロキシ接続のロールに設定します。
このオプションのrole_nameに、NONEまたはNULLのどちらを指定することもできません。
WITHOUT ROLE
指定した永久ユーザーの権限およびロールをCONNECT THROUGH権限に割り当てる。
WITHOUT ROLEは、同じリクエスト内でWITH TRUST_ONLYオプションを指定すると無効になります。また、このオプションは、アプリケーション ユーザーに対しても無効になります。
ロールを保持している指定されたtrusted_user:permanent_userにCONNECT THROUGH権限がすでに存在していた場合、ロールはWITHOUT ROLEオプションに置換します。
CONNECT THROUGH権限に加えた変更はすぐに有効になります。そのため、CONNECT THROUGH権限に変更を加えた後にプロキシ接続で実行される後続のリクエストでは、新しい権限定義が採用されます。
WITH PROFILE profile_name
信頼済みセッションは、指定のprofile_nameで定義された属性に設定されます。プロファイル属性のセットを以下に示します。
  • デフォルト アカウント
  • デフォルト データベース
  • SPOOL領域
  • 一時領域
  • セキュリティ制約
  • クエリー バンド
アプリケーション プロキシ ユーザーにプロファイルが割り当てられると、そのプロキシ ユーザーに固有のプロキシ ユーザーIDが作成され、プロキシ接続でのスプール領域と一時領域の制限は、プロキシ ユーザーのプロファイルで定義された制限になります。
application_user_nameのルールがある場合、WITH ROLE句を省略してプロファイルをルールに割り当てることができます。プロファイルを持たない既存のアプリケーション プロキシ ユーザーにプロファイルを追加する場合、そのプロファイルはどのアクティブな接続でも使用されません。異なるプロファイルをプロキシ ユーザーに割り当てるルールを変更すると、現在のプロファイルを変更するのと同じ影響があります。
MODIFY PROFILEリクエストのパラメータに加えられた変更をいつ適用するかを決めるルールは、信頼済みセッションでも通常セッションでのルールと同じです。プロキシ ユーザーのプロファイルを削除する効果は、ユーザーのプロファイルを削除する効果と同じです。