他のデータベースへの接続

Virtual DataPort への接続が確立すると、そのデータベースの 1 つに接続されます。これが「初期セッション」です。

CONNECT ステートメントは新しいセッションを作成します。新しいセッションを作成する目的は以下のとおりです。

  1. 他のデータベースへの接続

  2. または他のユーザーアカウントへの切り替え

セッションを閉じるには、(パラメーターなしで) CLOSE を実行します。

CONNECT ステートメントの構文
; 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」になります。

必要に応じて以下のパラメーターを指定できます。

  • DATABASE: 異なるデータベースに接続します。指定しない場合は、現在のデータベースでセッションが開始されます。

  • USER_AGENT: セッションの「ユーザーエージェント」を設定します。

「構文 1」と「構文 2」はいずれも、 USER_AGENT パラメーターでセッションの「ユーザーエージェント」プロパティを設定します。「 アプリケーションのユーザーエージェントの設定 」のセクションでは、この設定がどう役立つかを説明しています。ユーザーエージェントを設定してもセッションに付与された権限は変わらないことに注意してください。権限はセッションのユーザーアカウントに付与された権限のみに基づいて判断されます。

USER_AGENT パラメーターを指定せずにセッションを作成すると、新しいセッションは現在のセッションからユーザーエージェントを「継承」します。

注:

セッションはスタック式に構成されます。つまり、Virtual DataPort との接続を確立すると、この接続により「初期セッション」が作成されます。この初期セッションから別のセッションを作成し、さらにそのセッションからまた別のセッションを作成することができます。例を以下に示します。

  1. Virtual DataPort との接続を確立します。

  2. CONNECT を実行します。これによりセッションが作成されます。これを「session A」と呼びます。

  3. CONNECT を再度実行し、別のセッション (「session B」) を作成します。

  4. CONNECT を再度実行し、別のセッション (「session C」) を作成します。

  5. CLOSE を実行します。これにより「session C」が閉じられ、現在のセッションは「session B」になります。

  6. CLOSE を再度実行します。「session B」が閉じられ、現在のセッションは「session A」になります。

  7. CLOSE を再度実行します。これにより「session A」が閉じられ、初期セッションに戻ります。

接続を閉じると、すべてのセッションが自動的に閉じます。