Visual Studio Code用 PostgreSQL 拡張機能には、複数の認証方法、SSL/TLS 暗号化、およびサーバー グループや保存された接続などの組織ツールをサポートする接続ダイアログが用意されています。 この記事では、ダイアログを開く、認証方法を選択する、接続を保存して再利用する、サーバーを整理するなどの主要な接続タスクについて説明します。
Tip
SSH トンネル、接続文字列解析、または証明書ファイルの構成については、「高度な接続オプション」を参照してください。
接続ダイアログを開く
接続ダイアログは、いくつかの方法で開くことができます。
- 接続: [接続 ] セクションのヘッダーにカーソルを合わせ、[ 新しい接続の追加] ( + アイコン) を選択します。
- コマンド パレット: PGSQL の実行: 新しい接続の追加。
- 保存済みまたは最近の接続: サイド パネルの [保存された接続 ] または [ 最近使用した接続 ] の一覧から接続カードを選択して、その設定をダイアログに読み込みます。
新しいダイアログを開くと、ヘッダーに [新しい接続] が表示され、タイトルに [ PostgreSQL サーバーへの接続] と読み込まれます。 既存の接続を編集すると、ヘッダーが [接続の編集] に変わります。
入力モードを選択する
ダイアログの上部にある [ 接続方法] タブでは、接続の詳細を指定する方法を選択できます。
| タブ | 説明 |
|---|---|
| パラメーター | サーバー名、認証の種類、ユーザー名、パスワード、データベース名、接続名などの個々のフィールドに入力します。 これは既定のモードです。 |
| 接続文字列 | サポートされている任意の形式で接続文字列を貼り付けます。 拡張機能は文字列を解析し、抽出された サーバー名、 ユーザー名、データベース 名 を読み取り専用 の [接続の詳細] パネルに表示します。 |
| Azureを参照する | Azure サブスクリプション、リソース グループ、およびサーバーを参照し、Azure Database for PostgreSQL フレキシブル サーバーまたは Azure HorizonDB (プレビュー) クラスターを直接選択します。 Visual Studio CodeにサインインしているAzure アカウントが必要です。 |
3つのモードはいずれも、ダイアログの下部にある保存して接続ボタンと接続をテストボタンを使用します。 [詳細設定] ボタンを選択すると、どのモードでも [接続の詳細設定] ドロワーが開きます。
接続パラメーターを入力する
[パラメーター] タブを使用すると、ダイアログに次のメイン フィールドが表示されます。
| フィールド | 説明 |
|---|---|
| サーバー名 | PostgreSQL サーバーのホスト名または IP アドレス。 |
| 認証の種類 | 認証に使用されるメソッド。 「認証の種類」を参照してください。 |
| ユーザー名 | PostgreSQL データベースのユーザーまたはロール。 認証の種類がパスワードまたは AWS IAM (RDS/Aurora) の場合に表示されます。 |
| パスワード | ユーザー アカウントのパスワード。 認証の種類が [パスワード] の場合に表示されます。 |
| パスワードを保存する | パスワードを安全に保存するには、このチェック ボックスをオンにします。 パスワード ストレージを参照してください。 |
| データベース名 | 接続するデータベースの名前。 既定のデータベースに接続するには、空白のままにします。 |
| 接続名 | この接続のオプションのフレンドリ名。 拡張機能は、[ 接続 ] ツリーと [保存された接続 ] の一覧にこの名前を表示します。 |
認証の種類に応じて、追加のフィールドが表示されます。 Entra 認証の場合、ダイアログには Entra アカウント、Entra ユーザー名、テナントが表示されます。 AWS IAM (RDS/Aurora) の場合、ダイアログに AWS プロファイルと AWS リージョンが表示されます。
Note
[ポート] フィールドは、最上位のオプションの下にある [接続設定の詳細設定] ドロワーにあります。 既定のポートは 5432 です。
認証のタイプ
[ 認証の種類] ドロップダウン リストには、4 つのオプションがあります。
パスワード
パスワード 認証は、標準的な PostgreSQL メソッドです。 認証構成 (通常は pg_hba.conf) に対してサーバーが検証するユーザー名とパスワードを指定します。
- [認証の種類] を [パスワード] に設定します。
- ユーザー名とパスワードを入力します。
- 必要に応じて、[ パスワードの保存] を選択してパスワードを安全に保存します。
- [保存] と [接続] の順に選択します。
パスワード ストレージ
[パスワードの保存] を選択すると、拡張機能は、オペレーティング システムの資格情報マネージャーに委任する Visual Studio Code SecretStorage API を介してパスワードを格納します。
- macOS: キーチェーン
- Windows: 資格情報マネージャー
-
Linux:
libsecret(GNOME Keyring または KWallet)
保存されたパスワードは特定の接続に関連付けられるので、プレーンテキスト設定ファイルには保存されません。
Microsoft Entra 認証
Microsoft Entra認証 (以前のAzure Active Directory) は、Azure Database for PostgreSQLフレキシブル サーバーにトークンベースのパスワードレス認証を提供します。 ダイアログは、このオプション Entra 認証にラベルを付けます。
Note
Entra 認証には、Entra 認証が有効になっているAzure Database for PostgreSQLフレキシブル サーバー インスタンスが必要です。 構成の詳細については、Azure Database for PostgreSQLを使用したMicrosoft Entra認証を参照してください。
Entra 認証で接続するには:
- Entra アカウントを追加します。 コマンド パレットを開き、PGSQL: Microsoft Entra アカウントの追加を実行します。 開いたブラウザー ウィンドウで、Entra 資格情報を使用してサインインします。
- 接続ダイアログを開きます。 認証の種類を Entra 認証に設定します。
- アカウントを選択します。 [Entra Account]\(Entra アカウント\) ドロップダウン リストから追加したアカウントを選択します。
- テナントを選択します。 アカウントが複数のテナントに属している場合は、[テナント] ドロップダウン リストから適切な テナント を選択します。
- Entra ユーザー名を入力します。 ID にマップされた PostgreSQL ロールの Entra ユーザー名を入力します。
- 接続する。 [保存] と [接続] の順に選択します。 拡張機能はアクセス トークンを取得し、ユーザーに代わって PostgreSQL サーバーに対して認証します。
保存された Entra 接続プロファイルでは、引き続きレガシ AzureMFA 値が使用されます。 正規 bearer-token:entra-id 値は、サーバー駆動型ディスパッチと将来のプロファイル移行用に予約されています。
Entra アカウントを削除するには、PGSQL: Remove Microsoft Entra Account をコマンド パレットから実行し、削除するアカウントを選択します。 アカウントを削除せずにキャッシュされたトークンをクリアするには、PGSQL: clear Microsoft Entra account token cache を実行します。
デュアルアカウント モデル
この拡張機能では、Azureシナリオ用のデュアルアカウント モデルがサポートされています。 データベース認証には 1 つの Entra アカウントを使用し、Azureリソース (サブスクリプション、リソース グループ、サーバー) の参照には別のアカウントを使用できます。
- 接続ダイアログの [Entra Account ] フィールドは、データベースに対して認証する ID を制御します。
- [Azureの参照] タブでは、サブスクリプションとリソース列挙のVisual Studio CodeにサインインしたAzure アカウント (Azure リソース拡張機能を使用) が使用されます。
Tip
この分離は、データベース管理者アカウントが、Azureサブスクリプションを管理するアカウントと異なる場合に便利です。 各タスクに対して適切なアクセス許可を使用するように、それぞれを個別に構成します。
AWS IAM (RDS/Aurora)
AWS IAM 認証では、保存されたパスワードではなく、AWS で署名されたデータベース認証トークンが使用されます。 このオプションは、IAM データベース認証が有効になっている Amazon RDS for PostgreSQL または Amazon Aurora PostgreSQL データベース エンドポイントにのみ使用します。 手動で入力した AWS リージョン はリージョンの推論を補完できますが、カスタム PostgreSQL ホスト、RDS 以外のホスト、または CNAME エイリアスはサポートされません。 このダイアログでは、このオプション に AWS IAM (RDS/Aurora) というラベルが付けられます。
Note
PostgreSQL データベース ロールはサーバー上に存在し、IAM データベース認証の使用を許可する必要があります。 RDS と Aurora PostgreSQL の場合は、ロールに rds_iamを付与します。 詳細については、「 MariaDB、MySQL、および PostgreSQL の IAM データベース認証」を参照してください。
AWS IAM 認証を使用して接続するには:
- AWS の資格情報を準備します。 組織に必要な AWS CLI フローを構成します。 たとえば、
aws configure、aws sso login --profile <profile>、組織固有のcredential_processセットアップなどがあります。 - 接続ダイアログを開きます。 認証の種類を AWS IAM (RDS/Aurora) に設定します。
- サーバー エンドポイントを入力します。 サーバー名で Amazon RDS または Aurora PostgreSQL エンドポイントを使用します。
- データベース ロールを入力します。 [ユーザー名] に、PostgreSQL データベースのユーザーまたはロールを入力します。 これは 、AWS プロファイル、IAM ユーザー、IAM ロール、または ARN ではありません。
- AWS 資格情報ソースを選択します。 AWS プロファイルを選択または入力します。 既定 の AWS 認証情報チェーンを使用するには、AWS プロファイルを空白のままにします。
- 必要に応じて AWS リージョンを設定します。 この拡張機能は、可能な限り、標準の RDS ホスト名と Aurora ホスト名からリージョンを推測します。 ホスト名にリージョンが含まれていない場合は、 AWS リージョンに入力します。
- 接続する。 [保存] と [接続] の順に選択します。 拡張機能は有効期間の短い認証トークンに署名し、それを新しい接続の PostgreSQL パスワードとして使用します。
AWS 認証情報チェーンは、環境変数、共有 AWS 構成と認証情報ファイル、AWS SSO プロファイル、および credential_process プロファイルをサポートします。 EC2 または ECS インスタンス/コンテナーメタデータの資格情報は使用せず、メタデータベースの credential_source プロファイル チェーンも使用しません。
AWS IAM データベース認証トークンは 15 分間有効です。 基になる AWS 資格情報が有効なままである間、拡張機能は必要に応じて新しいトークンを取得します。 手動のトークン更新手順は必要ありません。
なし
None は認証を完全にスキップします。 拡張機能は、資格情報を送信せずに接続します。 このオプションは、 trust 認証または同様の資格情報なしの構成で構成された PostgreSQL サーバーに適用されます。
接続、テスト、切断
接続の詳細を入力した後、接続ダイアログと 接続 ツリーのアクションを使用して、プロファイルの保存、接続、編集、またはサーバーの削除を行います。
保存して接続する
接続の詳細を入力したら、[ 保存] & [接続 ] を選択して接続を確立します。 このボタンは、次の 2 つのアクションを実行します。
- 接続をプロファイルとして VS Code 設定に保存します。
- サーバーに接続します。
接続が成功すると、サーバーが [接続 ] ツリーに表示されます。 接続は、[接続] ダイアログの [ 保存された接続 ] と [ 最近使用した接続 ] の一覧にも表示されます。
接続をテスト
プロファイルを保存したり、サーバーを接続ツリーに追加したりせずに接続パラメーターを確認するには、[接続のテスト] を選択します。 このボタンには、テストの実行中にスピナーが表示され、成功した場合はチェックマークが表示され、失敗した場合は警告アイコンが表示されます。
切断
サーバーから切断するには:
- 接続: サーバー ノードを右クリックし、[ 切断] を選択します。
- コマンド パレット: PGSQL: Disconnect を実行します。
既存の接続を編集する
保存された接続を編集するには、[ 接続 ] ツリーでサーバーを右クリックし、[ 接続の編集] を選択します。 接続ダイアログが編集モードで開き、ヘッダーの [接続の編集] と現在のプロファイル名がタイトルとして表示されます。 変更を加え、[ 保存] & [接続 ] を選択して、更新された設定に再接続します。
接続の詳細設定
メイン フィールドの下にある [詳細設定 ] ボタンを選択して 、[接続の詳細設定] ドロワーを開きます。 引き出しには次のものが入っています:
- 最上位のオプション: スコープ (ユーザーまたはワークスペース)、 ポート、 アプリケーション名、 接続タイムアウト、 マルチサブネット フェールオーバー。
- グループ化されたセクション: ソース、セキュリティ、サーバー、クライアント、SSL、Copilot、SSH トンネルの折りたたみ可能なアコーディオン セクション。
[スコープ] オプションは、接続プロファイルを保存する場所を制御します。
| Scope | プロファイルが格納されている場所 |
|---|---|
| User | VS Code ユーザー設定 (グローバル、任意のワークスペースで使用可能) |
| Workspace | VS Code ワークスペースの設定 ( .vscode/settings.json 経由でコラボレーターと共有) |
SSL と SSH トンネルの構成の詳細については、「 高度な接続オプション」を参照してください。
接続ごとの Copilot アクセス モード
高度なドロワーの Copilot セクションには、次の 3 つのオプションを含むCopilotアクセス モードのドロップダウン リストが含まれています。
| Option | 影響 |
|---|---|
| グローバル設定を使用する | グローバル pgsql.copilot.accessMode 値を継承します。 |
| 読み取り専用 | Copilotをこの接続での読み取り専用の操作に制限します。 |
| 読み取り/書き込み | Copilotがこの接続に対して読み取り操作と書き込み操作を実行できるようにします。 |
SSL と TLS
SSL/TLS は、Visual Studio Codeと PostgreSQL サーバー間の接続を暗号化します。 高度な接続設定ドロワーのSSLセクションまたは接続文字列で、SSL モードを設定します。
SSL モード
| モード | 説明 |
|---|---|
| 無効にする | SSL 暗号化なし。 接続は暗号化されていません。 |
| 許可 | 暗号化されていない接続を最初に試行します。が必要な場合は SSL にフォールバックします。 |
| 優先 | 最初に SSL を試みます。SSL ネゴシエーションが失敗した場合、暗号化されていない接続にフォールバックします。 これは、多くの PostgreSQL クライアントの既定値です。 |
| 必須 | SSL 暗号化は必要ですが、サーバー証明書は検証されません。 受動的な傍受から保護します。 |
| Verify-CA | SSL が必要で、サーバー証明書が信頼された証明機関 (CA) によって署名されていることを確認します。 |
| 完全検証 | SSL が必要で、CA を検証し、サーバーのホスト名が証明書の共通名またはサブジェクトの別名と一致することを確認します。 最も強力な保護を提供します。 |
Note
Azure Database for PostgreSQLでは、既定で SSL が必要です。 ほとんどのシナリオで必須を使用するか、DigiCert グローバル ルート G2 証明書で Verify-Full を使用してセキュリティを最大限に高めます。
Tip
証明書ファイルの構成と相互 TLS のシナリオについては、「 高度な接続オプション」を参照してください。
保存された接続と最近の接続を管理する
接続ダイアログには、次の 2 つのリストを含むサイド パネルが含まれています。
- [保存された接続]: [ 保存] & [接続] で以前に保存した接続。 各カードには、サーバーの表示名が表示されます。 カードの上にマウス ポインターを置くと、削除ボタンが表示されます。 設定をダイアログに読み込むカードを選択します。
- 最近使用した接続: 接続名を使用して接続を保存したかどうかに関係なく、最近使用した 接続。 マウスポインターを合わせると、削除ボタンが表示されます。
最近使用した接続の一覧は、pgsql.maxRecentConnections設定によって制限されます。 プロファイルとデータベースごとに同時に開く接続の最大数は、 pgsql.maxConnections 設定 (既定値: 10) によって制御されます。
サーバー グループ
サーバー グループは、[ 接続 ] ツリーで接続を整理するのに役立ちます。 各グループにカスタム名と色を割り当てることで、開発、ステージング、運用などの環境を一目で簡単に識別できます。
サーバー グループを作成する
- [接続] ツリーを右クリックし、[サーバー グループの作成] を選択します。
- ダイアログで、 名前、オプションの 説明を入力し、グループの 色 を選択します。
サーバー グループを編集または削除する
- 編集: [接続 ] ツリーでサーバー グループを右クリックし、[ サーバー グループの編集] を選択して名前、説明、または色を変更します。
- 削除: サーバー グループを右クリックし、[削除] を選択 します。 グループ内の接続は削除されません。既定のグループに移動します。
グループへの接続の割り当て
接続を作成または編集すると、接続ダイアログのメイン フィールド領域に [サーバー グループ ] ドロップダウン リストが表示されます。 一覧からグループを選択して、そのグループに接続を割り当てます。
グループの色は、 接続 ツリーのグループ名の横に色付きのバーとして表示され、視覚的に簡単に識別できます。
Azure メタデータ
Azure Database for PostgreSQLフレキシブル サーバーに接続すると、接続ダイアログにフォームの横に Azure メタデータ パネルを表示できます。 このパネルには、Fetch Azure Metadata を選択すると、サーバーのサブスクリプションとリソース グループが表示されます。 メタデータAzure含めると、サーバー ダッシュボードやAzure Monitor メトリックなどの管理機能が有効になります。
接続に関する一般的な問題のトラブルシューティング
接続の試行が失敗した場合、原因は通常、ネットワーク、認証、または SSL 設定です。 次のセクションでは、最も一般的なケースについて説明します。
接続拒否またはタイムアウト
認証が開始される前に接続に失敗した場合は、最初に サーバー名 と ポート を確認します。 PostgreSQL が実行されていること、マシンからポートに到達可能であり、ネットワーク ファイアウォール規則によって接続が許可されていることを確認します。 接続の詳細設定ドロワーで接続タイムアウトを調整して、低速ネットワークの時間を増やすことができます。
SSL または証明書の検証エラー
サーバーで暗号化が必要な場合は、高度なドロワーの SSL セクションで選択した SSL モードがサーバー構成と一致することを確認します。 Verify-CA と Verify-Full の場合は、正しい CA 証明書が構成されていることを確認します。 証明書ファイルの詳細については、「 高度な接続オプション」を参照してください。
Microsoft Entra のサインインまたはトークンの問題
Entra 認証が失敗した場合は、ターゲット Azure Database for PostgreSQLフレキシブル サーバーで Entra 認証が有効になっていることを確認し、接続ダイアログで正しいアカウントとテナントを選択したことを確認します。 必要に応じて、PGSQL: Microsoft Entra アカウントを削除し、アカウントを再追加します。 キャッシュされたトークンをリセットするには、PGSQL: アカウント トークン キャッシュMicrosoft Entraクリアを実行します。
AWS IAM プロファイルまたはトークンの問題
AWS IAM 認証が失敗した場合は、 サーバー名 がカスタムホスト名または CNAME エイリアスではなく、Amazon RDS または Aurora PostgreSQL エンドポイントであることを確認します。
ユーザー名が PostgreSQL データベース ロールであり、ロールでサーバーで IAM データベース認証が有効になっていることを確認します。 選択した AWS プロファイル がサポートされている AWS 資格情報を取得できることを確認します。たとえば、名前付きプロファイルの aws sts get-caller-identity --profile <profile> を実行するか、既定の資格情報チェーンを使用する場合は --profile を省略します。 サポートされているエンドポイントに対してリージョンの推論が失敗した場合は、 AWS リージョン を手動で入力します。
接続文字列の解析で適切なフィールドが設定されない
貼り付けた接続文字列が期待される値を設定しない場合は、[詳細接続オプション] でサポートされている入力パターンを確認します。 ソース形式が異常な場合は、[ パラメーター ] タブに切り替えて、値を手動で入力します。