2.2 データベースへの接続

接続は、特定のデータベースの特定のユーザーとしてそのデータベースに接続するために必要な情報を指定するSQL Developerオブジェクトです。SQL Developer for VS Codeを使用するには、1つ以上の(既存または作成された)データベース接続が必要です。

標準のOracle Database認証を使用して、任意のターゲットOracle Databaseスキーマに接続できます。接続後に、データベース内のオブジェクトに対する操作を行うことができます。

接続に対して実行可能なアクションは、次のとおりです:

  • 追加: 新しい接続を作成します。「接続」の横にある「追加」アイコンをクリックし、接続情報を入力して「接続」をクリックします。詳細は、接続の作成を参照してください。

  • 編集: 既存の接続を編集します。「接続」パネルで接続名を右クリックし、「編集」を選択します。接続名以外の接続情報を変更して、「保存」または「接続」をクリックします。

  • クローン: 1つ以上の接続がすでに存在する場合に、新しい接続を作成します。「接続」パネルで既存の接続を選択し、右クリックして「クローン」をクリックします。接続名を目的の名前に変更し、必要に応じてその他の接続情報を編集し、「保存」または「接続」をクリックして新しい接続を作成します。

  • リフレッシュ: 接続を更新して、加えた変更内容を含めます。接続名の横にある「リフレッシュ」アイコンをクリックして接続をリフレッシュします。
  • SQLワークシートを開く: 接続のSQLワークシート・ペインを開きます。接続名を右クリックし、「SQLワークシートを開く」を選択します。SQLワークシートの使用を参照してください

  • SQLclを開く: 開いているデータベース接続の「ターミナル」タブでSQLclコマンドラインを起動します。接続名を右クリックし、「SQLclを開く」を選択します。

  • 再接続: セッションが終了した接続に再接続します。「接続」パネルで名前を右クリックし、「再接続」を選択します。

  • 切断: 現在の接続を切断します。「接続」パネルで名前を右クリックし、「切断」を選択します。

  • 削除: 接続を削除する(単に現在の接続を切断するのではなく、SQL Developerから削除する)には、「接続」ナビゲータ表示で接続名を右クリックして「削除」を選択します。接続を削除しても、その接続に関連付けられているユーザーは削除されません。

2.2.1 接続の作成

次のステップを実行し、新しい接続を作成します。
  1. 「接続」パネルで、「追加」アイコンをクリックします。

    「接続の作成」ペインが表示されます。

  2. 次のようにフィールドを入力します。

    接続名: 入力する情報を使用したデータベースへの接続の別名。(接続名はデータベースに格納されません。また、接続はデータベース・オブジェクトではありません。) 推奨: 接続名にはデータベース名(SID)およびユーザー名を含めることをお薦めします。例: ユーザーJoeとして人事データベースに接続するためのpersonnel_joe。

    「ユーザー情報」タブ

    • ロール: 接続に関連付ける権限セット。SYSDBAシステム権限を付与されたユーザーには、権限を含む接続を指定できます。
    • ユーザー名: 接続のデータベース・ユーザーの名前。このユーザーには、表やビューなどのオブジェクトの作成、編集、削除など、データベースへの接続中に目的のタスクを実行するのに十分な権限が必要です。
    • パスワード: 指定したデータベース・ユーザーに関連付けられたパスワード。
    • パスワードの保存: このオプションを選択すると、パスワードが接続情報とともに保存され、この接続を使用してその後で接続を試行してもパスワードの入力が求められません。
    • 接続タイプ: 「基本」、「TNS」、「クラウド・ウォレット」または「カスタムJDBC URL」を選択します。フィールドの表示は、接続タイプでの変更を反映して変更されます。どのOracle接続タイプにも、カスタムJDBCプロパティの設定に使用できる「詳細」タブがあります。
      • 「基本」接続タイプ
        • ホスト名: Oracle Databaseのホスト・システム。

        • ポート: リスナー・ポート。

        • タイプ: データベース名。

        • サービス名: データベースのネットワーク・サービス名(セキュアな接続を介したリモート・データベース接続の場合)。

      • 「TNS」接続タイプ
        • ネットワーク別名: データベースのOracle Net別名。

        • TNSファイルの場所: TNSNAMES.ORAファイルが配置されているディレクトリが表示されます。「設定での編集」リンクをクリックして、場所を追加または変更します。

        • 接続識別子: Oracle Netの接続識別子。

      • 「クラウド・ウォレット」接続タイプ

        この接続タイプは、Oracle Walletを使用するOracle Cloud接続と関係があります。

        • 構成ファイル: クラウド・サービス・コンソールからダウンロードされたクライアント資格証明のzipファイル。

        • サービス: クライアント資格証明ファイル内のサービス名。このフィールドは、クライアント資格証明ファイルを選択すると自動的に事前入力されます。

        • 「プロキシ」タブ: クラウド・ウォレット接続はカスタム・プロキシをサポートします。

      • 「カスタムJDBC」接続タイプ

        • カスタムJDBC URL: Javaからデータベースに直接接続するURL(他のすべての接続タイプ指定より優先される)。TNS、またはOCIドライバによるネーミング・サービスを使用している場合は、この情報を指定する必要があります。次に例を示します。

          jdbc:oracle:thin:scott/@localhost:1521:orcl
          

          この例では、「/」が必要であり、ユーザーはパスワードの入力を求められることに注意してください。

  3. 「テスト」をクリックして、データベース接続を開く前にテストします。
  4. 「保存」をクリックして接続の詳細を保存するか、「接続」をクリックして接続を開きます。

2.2.2 Entra ID認証

この項は、SQL Developer Extension for VS Codeを使用して、Entra ID (Azure AD)認証用に構成されたOracle Databaseに接続することを可能にします。

必要なツールを設定し、認証を構成し、データベースへのセキュアな接続を確立する方法を学習します。

Azure SDKのインストール

VS Code内でSQLclターミナルを開きます。

Azure SDKは、JDBCシン・ドライバがEntra ID認証を使用してデータベースへの接続を有効にするために必要なJARファイルのセットです。SQL Developer拡張機能には、このSDKをインストールするための簡単なコマンドが用意されています:
sdk install jdbc-azure

インストールが完了したら、VS Codeを再起動して、新しくインストールしたJARファイルをロードします。

tnsnames.oraエントリの設定

Entra ID認証に必要なパラメータを含む新しいエントリをtnsnames.oraファイルに追加します:
PDB1 = 
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=TCPS)(HOST=xxxxx)(PORT=0000))
    (SECURITY=
      (SSL_SERVER_DN_MATCH=TRUE)
      (WALLET_LOCATION=SYSTEM)
      (TOKEN_AUTH=AZURE_INTERACTIVE)
      (TENANT_ID=xxxxx)
      (CLIENT_ID=xxxxx)
      (AZURE_DB_APP_ID_URI=xxxxx)
    )
    (CONNECT_DATA=
      (SERVER=DEDICATED)
      (SERVICE_NAME=pdb1)
    )
  )
  • PROTOCOL: トークン転送のためのセキュアな接続を確保するために、TCPSに設定する必要があります。
  • HOST: データベース・ホストを指定します。
  • PORT: データベース・ポートを指定します。
  • SSL_SERVER_DN_MATCH (optional): 識別名(DN)一致によるサーバー側の証明書検証を強制します。
  • WALLET_LOCATION: パブリックCA署名証明書の場合はSYSTEMを使用し、自己署名CAまたはプライベートCAを使用する場合はローカル・パスを指定します。ウォレットを使用するOCIデータベース(Autonomous Databaseなど)に接続する場合は、抽出されたウォレットの場所を指すようにしてください。
  • TOKEN_AUTH: Entra ID認証の場合はAZURE_INTERACTIVEに設定します。
  • TENANT_ID: Entra ID認証の場合はAZURE_INTERACTIVEに設定します。
  • CLIENT_ID: データベース・クライアントの登録済Entra ID Webアプリケーションを指定します。
  • AZURE_DB_APP_ID_URI: データベース・サーバーの登録済Entra ID WebアプリケーションのURIを指定します。

接続の作成

標準のTNS接続の場合と同様に、SQL Developer拡張機能を使用して新しい接続を作成します。認証は拡張機能によって要求される対話型ブラウザ・ログインを介して完了するため、ユーザー名およびパスワードは必要ありません。
entra_id_authentication.pngの説明が続きます
図entra_id_authentication.pngの説明

接続を開くと、Entra ID資格証明を使用してサインインするように求めるブラウザ・ウィンドウが起動します。認証に成功すると、認証の成功画面が表示されます。その後、ブラウザを閉じてVS Codeに戻り、データベース接続を続行できます。