他のデータベースへの接続¶
Virtual DataPort への接続が確立すると、そのデータベースの 1 つに接続されます。これが「初期セッション」です。
CONNECT
ステートメントは新しいセッションを作成します。新しいセッションを作成する目的は以下のとおりです。
他のデータベースへの接続
または他のユーザーアカウントへの切り替え
セッションを閉じるには、(パラメータなしで) CLOSE
を実行します。
; Syntax #1. Connect to another database:
CONNECT DATABASE <database:identifier>
[ USER_AGENT <user agent:literal> ]
; Syntax #2. Create a session with a different user account:
CONNECT <authentication method>
[ DATABASE <database:identifier> ]
[ USER_AGENT <user agent:literal> ]
<authentication method> :==
USER <user name:identifier> [ PASSWORD <password:literal> ] ]
| TOKEN <Kerberos token encoded in Base64:literal>
| OAUTHTOKEN <OAuth 2.0 token:literal>
構文 1
「構文 1」を使用して、別のデータベースに接続している現在のユーザーでセッションを作成します。
必要に応じて、パラメータ USER_AGENT
でセッションの「ユーザーエージェント」を設定できます。
構文 2
「構文 2」を使用して、異なるユーザーアカウントでセッションを作成します。作成した他のユーザーアカウントの資格情報をパラメータ <authentication method>
で指定する必要があることに注意してください。
たとえば、ユーザー「scott」で Virtual DataPort への接続を確立し、以下の手順を実行したとします。
CONNECT USER lisa PASSWORD 'my_password';
接続が確立され、セッションが実行されている間は、「lisa」が初期接続を確立した場合と同様に、すべてのステートメントが実行されます。つまり、実行エンジンは「lisa」の権限を使用して、クエリが実行できるかを検証し、Diagnostic & Monitoring Tool でのクエリの実行ユーザーは「lisa」になります。また、パスワードを指定しない接続も可能ですが、impersonator ロールを持つグローバル管理者ユーザー (または、プロパティ 'com.denodo.vdb.security.allowImpersonateToRegularUsers' が true の場合の一般ユーザー) のみが他のユーザーに接続できます。
たとえば、ユーザー「scott」 (impersonator ロールを持つ) で Virtual DataPort への接続を確立する場合、パスワードを指定せずにユーザー lisa に接続できます。
CONNECT USER lisa;
'allowImpersonateToRegularUsers' プロパティは、管理者以外のユーザーに対してこの機能を有効または無効にします。デフォルトの値は false です。管理者以外の他のユーザーが impersonated connect コマンドを実行できるようにするには、true に設定し、impersonate ロールを持つ必要があります。
SET 'com.denodo.vdb.security.allowImpersonateToRegularUsers' = 'true'
必要に応じて以下のパラメータを指定できます。
DATABASE
: 異なるデータベースに接続します。指定しない場合は、現在のデータベースでセッションが開始されます。USER_AGENT
: セッションの「ユーザーエージェント」を設定します。
「構文 1」と「構文 2」はいずれも、 USER_AGENT
パラメータでセッションの「ユーザーエージェント」プロパティを設定します。「 アプリケーションのユーザーエージェントの設定 」のセクションでは、この設定がどう役立つかを説明しています。ユーザーエージェントを設定してもセッションに付与された権限は変わらないことに注意してください。権限はセッションのユーザーアカウントに付与された権限のみに基づいて判断されます。
USER_AGENT
パラメータを指定せずにセッションを作成すると、新しいセッションは現在のセッションからユーザーエージェントを「継承」します。
注:
セッションはスタック式に構成されます。つまり、Virtual DataPort との接続を確立すると、この接続により「初期セッション」が作成されます。この初期セッションから別のセッションを作成し、さらにそのセッションからまた別のセッションを作成することができます。例を以下に示します。
Virtual DataPort との接続を確立します。
CONNECT
を実行します。これによりセッションが作成されます。これを「session A」と呼びます。CONNECT
を再度実行し、別のセッション (「session B」) を作成します。CONNECT
を再度実行し、別のセッション (「session C」) を作成します。CLOSE
を実行します。これにより「session C」が閉じられ、現在のセッションは「session B」になります。CLOSE
を再度実行します。「session B」が閉じられ、現在のセッションは「session A」になります。CLOSE
を再度実行します。これにより「session A」が閉じられ、初期セッションに戻ります。
接続を閉じると、すべてのセッションが自動的に閉じます。