Visual Studio Code用の MSSQL 拡張機能を使用してデータベースに接続する

Visual Studio Code用の MSSQL 拡張機能は、Microsoft Fabric内の SQL Server、Azure SQL、および SQL データベースへの接続を中心にしています。 この記事では、接続ダイアログを使用して接続を作成する方法と、拡張機能でサポートされる認証の種類について説明します。 また、オブジェクト エクスプローラーで保存された接続を整理する方法と、新しい SQL ファイルを開くときに拡張機能が使用する接続を選択する方法についても説明します。

接続後、「クイック スタート: データベースの作成、データの追加、Transact-SQL ステートメントの実行をVisual Studio Codeするための MSSQL 拡張機能を使用して最初のクエリを実行する」を参照してください。

[接続] ダイアログ

接続ダイアログは、接続を作成または編集するための主要な方法です。 オブジェクト エクスプローラーで [接続の追加] を選択するか、コマンド パレットから [MS SQL: 接続の追加] コマンドを実行して開きます。

ダイアログには、次の 3 つの主要な領域があります。

  • 中央の フォーム領域 。接続の詳細を入力します。
  • 右側の [保存された接続 ] パネルと [ 最近使用した接続 ] パネルで、接続をすばやく再度開いたり編集したりできます。
  • [詳細設定]、[テスト接続]、[接続せずに保存]、および [接続] アクションを含むフッター。

MSSQL 拡張機能の [接続] ダイアログのスクリーンショット。いくつかの入力モードとパラメーターと、最近使用した接続と保存された接続を含むサイドバーが表示されています。

入力の種類

フォームの上部にある 入力タイプ セレクターは、接続の詳細を入力する方法を制御します。 ターゲット サーバーについて既に知っているものに最も一致する入力の種類を使用します。

  • パラメーター: サーバー名、データベース名、認証の種類、ユーザー名、パスワードなどの個々のフィールドに入力します。 この入力の種類は既定であり、ほとんどのシナリオで最も簡単なオプションです。

  • Connection String: ADO.NET スタイルの完全な接続文字列を貼り付けます。 この入力の種類は、接続文字列が既に提供されている場合 (Azure ポータルや管理者など)、またはパラメーター ビューで公開されていないオプションを構成する必要がある場合に便利です。

  • Azure参照: Azureにサインインし、サブスクリプションからサーバーとデータベースを選択します。 サブスクリプションとリソース グループでフィルター処理して、目的のデータベースを見つけることができます。 このオプションは、Azure SQL DatabaseとAzure SQL Managed Instanceに対して機能します (プライベート エンドポイントとパブリック エンドポイントの両方が一覧表示されます)。 お気に入りのサブスクリプションを一覧の一番上に表示し、自動的に読み込むことができます。

  • Fabric参照: Microsoft Fabricにサインインし、ワークスペースの 1 つから SQL データベースを選択します。 ダイアログには、アクセスできるワークスペースと、その中の SQL データベースが一覧表示されます。 Azure を参照する場合と同様に、ワークスペースをお気に入りに登録すると、一覧の上部に表示され、自動的に読み込まれます。

Browse AzureBrowse Fabric の両方で、Visual Studio Code へのサインインに使用している Microsoft アカウントが使われます。 必要な数のMicrosoft アカウントでサインインし、参照パネルの上部にあるドロップダウンを使用してアカウントとそのテナントを切り替えることができます。 GitHub アカウントを使用して、AzureおよびFabricデータベースを参照することはできません。

[接続] ダイアログの上部にある [入力の種類] セレクターのスクリーンショット。[パラメーター]、[接続文字列]、[Azureの参照]、[参照] Fabricが表示されています。

データベースを選択する

[データベース] フィールドを使用すると、サーバーの既定のデータベースまたは特定のデータベースに接続できます。

  • このフィールドは <Default> に設定したままにして、サーバーがログインを割り当てる既定のデータベースに接続します。 これは最も簡単なオプションであり、後でエディターからデータベースを切り替えることができます。

  • ドロップダウン リストから特定のデータベースを選択します。 認証に十分な詳細を入力すると、拡張機能はバックグラウンドでサーバー上のデータベースの一覧をフェッチしようとします。 リストが正常に読み込まれた場合は、そこから選択できます。

  • データベース リストを読み込めなかった場合 (たとえば、ログインにサーバー上のデータベースを列挙する権限がない場合など) は、フィールドにデータベース名を直接入力できます。

[接続] ダイアログの [データベース] ドロップダウンのスクリーンショット。データベースの一覧が表示されています。

詳細設定

フッターで [詳細設定 ] を選択すると、 Always EncryptedCommand TimeoutApplication Intent (読み取り専用または読み取り/書き込み) など、その他の接続オプションの完全なセットを含むサイド パネルが開きます。 これらは、セキュリティ接続の回復性プールなどのカテゴリにグループ化された、接続文字列で見つかるのと同じオプションです。 パネルの上部にある検索ボックスを使用して、特定の設定をすばやく見つけます。

検索ボックスと設定カテゴリが表示された [高度な接続設定] ドロワーのスクリーンショット。

フッターのボタンは、フォームへの入力が完了したときに何が起こるかを制御します。

  • 接続: データベースに接続し、保存した接続の一覧に接続を追加します。

  • テスト接続: 何も保存せずに、現在のフォーム値を使用して接続を試みます。 これを使用して、接続にコミットする前に、サーバー、資格情報、およびその他の設定が正しいことを確認します。

  • 接続せずに保存する: 接続プロファイルを保存した接続の一覧に保存しますが、セッションは開きません。 これは、事前に接続を設定する場合や、接続せずに既存の接続の名前を変更する場合に便利です。

既存の接続を操作する

ダイアログの右側にある [保存された接続 ] と [最近使用した 接続 ] の一覧を使用すると、既にある接続から簡単に開始できます。

  • 保存されている接続の上にマウス ポインターを合わせると、アクション メニューが表示されます。 そこから、接続の詳細を 編集 したり、既存の接続に基づいて 新しい接続を作成 したり (複数の接続が同じサーバーと異なるデータベースまたは資格情報を共有する場合に便利なショートカット)、一覧から接続を削除したりできます。

  • 最近の接続は同じように機能しますが、保存されていなくても、最近使用した接続に限定されます。

[接続] ダイアログの [保存済み] と [最近使った接続] パネルのスクリーンショット。ホバー アクション メニューが表示されています。

サポートされている認証の種類

MSSQL 拡張機能では、いくつかの認証の種類がサポートされています。 サーバーの構成方法に一致するものを選択します。

SQL ログイン

SQL Server自体で定義されているユーザー名とパスワードを入力します。 SQL ログインは、SQL Server、Azure SQL Database、およびAzure SQL Managed Instanceに対して機能します。

必要に応じて、接続するたびにパスワードを再入力する必要がないように、パスワードを保存できます。

Windows 認証

現在のWindows アカウントを使用して、ユーザー名やパスワードを必要とせず、サーバーにサインインします。 Windows認証は、通常、ドメインに参加しているネットワークまたはサーバーと同じコンピューター上で、それを受け入れるように構成されたSQL Server インスタンスに接続している場合にのみ機能します。

このオプションは統合 認証と呼ばれることもあります。 FabricのAzure SQL Database、Azure SQL Managed Instance、または SQL データベースでは使用できません。

Microsoft Entra ID - MFA 付きユニバーサル

Microsoft Entra ID アカウントでサインインします。 このオプションでは、Microsoft Entra テナントのゲストである多要素認証 (MFA)、条件付きアクセス ポリシー、個人用Microsoft アカウントがサポートされます。

このオプションを選択すると、Microsoft Entra ID アカウントを選択または追加し、アカウントが複数のアカウントにアクセスできる場合はテナントを選択するように求められます。

拡張機能では、Visual Studio CodeにサインインしたMicrosoft アカウントが使用されます (ウィンドウの左下隅にある [アカウント] メニューに表示されるのと同じアカウント)。 まだVisual Studio Codeにサインインしていない場合、またはアカウントを使用するための MSSQL 拡張機能のアクセス許可をまだ付与していない場合は、接続時にサインインするように求められます。

Note

以前に拡張機能の独自のアカウント システム (MSSQL 1.42.2 以前で使用) を使用して MSSQL 拡張機能にサインインした場合は、次に保存した接続のいずれかを使用して接続するときに、Visual Studio Codeにサインインするように求められます (まだサインインしていない場合)。

Visual Studio Code のアカウント システムがうまく機能しない場合は、お知らせくださいmssql.preview.useVscodeAccountsForEntraMFAfalse に設定することで、前のサインイン メカニズムにフォールバックできます。

[接続] ダイアログの Microsoft Entra ID アカウント ピッカーのスクリーンショット。[アカウントの追加] オプションが含まれます。

Microsoft Entra ID - 既定値

このオプションでは、既定Microsoft Entra ID認証が使用されます。 Microsoft Data SQL (MDS) ドライバーは、システムにインストールされている資格情報プロバイダーから使用可能なMicrosoft Entra ID ID を自動的に選択します。 この認証の種類は、MSSQL 拡張機能で直接サポートされていない特定の認証要件がある場合に便利です。

ID は、サインインAzure CLI セッション (az login) や環境変数など、いくつかの異なるソースから取得できます。また、User name ボックスを設定することで、特定の ID を使用するように指示できます。 既定の認証で ID を選択する方法の詳細については、Azure ID クライアント ライブラリの DefaultAzureCredential に関するページを参照してください。

Microsoft Entra ID - サービス プリンシパル

Microsoft Entra ID サービス プリンシパル (ユーザーではなくアプリケーション ID) として認証します。 このオプションは、自動化シナリオ、共有ワークステーション、またはユーザーではなくアプリケーション ID へのデータベース アクセスを許可することが望ましい場合に使用します。

このオプションを選択すると、[ ユーザー名 ] フィールドと [パスワード ] フィールドが再利用されます。

  • サービス プリンシパルの アプリケーション (クライアント) ID を ユーザー名として入力します。
  • サービス プリンシパルの クライアント シークレット をパスワードとして入力します。

SQL でサービス プリンシパルを使用する方法の詳細については、Azure ID クライアント ライブラリのサービス プリンシパルを参照してください。

オブジェクト エクスプローラー内の接続

接続ダイアログから作成するすべての接続 (すぐに接続するか、接続せずに保存するか) が MSSQL ビューのオブジェクト エクスプローラーに表示されます。 オブジェクト エクスプローラーでは、サーバーの内容の参照、バックアップなどのアクションの実行、前に使用したデータベースへの再接続を行います。

接続グループ

接続は、 接続グループに編成できます。 グループはフォルダーのように動作します。名前を付け、色を割り当て、その中に接続を配置して、環境を視覚的に分離することができます (たとえば、 運用ステージングローカル)。

  • グループの作成: [新しい接続グループ ] コマンドを使用するか、接続の作成または編集中に新しいグループを割り当てます。

  • ドラッグ アンド ドロップして整理する: 接続をグループにドラッグして、そのグループに移動します。 グループを別のグループの上にドラッグすると、ネストできます。 グループを複数階層にわたって入れ子にできます。

  • 展開と折りたたみ: 各グループの横にあるシェブロンを使用して展開および折りたたみ、現在操作している接続のみが表示されるようにします。 Visual Studio Code起動時にグループが折りたたまれた状態で常に開始するには、mssql.collapseConnectionGroupsOnStartup設定を有効にします。

入れ子になったグループや包含接続を含む接続グループを示すオブジェクト エクスプローラーのスクリーンショット。

接続コンテキスト メニュー

オブジェクト エクスプローラーでサーバー接続を右クリックすると、接続自体に適用されるアクションが表示されます。 最も一般的に使用される接続関連のオプションは次のとおりです。

  • / 切断: サーバーに対するセッションを開始または終了します。
  • 接続の編集: 接続プロファイルを読み込んだ状態で接続ダイアログを開き、そのパラメーターを編集します。
  • Connection Stringコピー: 保存した接続の接続文字列をクリップボードにコピーします。 これは、接続を別のツールと共有したり、アプリケーション コードに貼り付けたりする必要がある場合に便利です。 パスワードとシークレットは含まれません。
  • 接続の削除: 保存したリストから接続を削除します。

[接続文字列のコピー] が強調表示されている、サーバー接続のオブジェクト エクスプローラー右クリック メニューのスクリーンショット。

Azure SQLのファイアウォール規則

サーバーのファイアウォールで許可されていないクライアント IP アドレスからAzure SQL DatabaseまたはAzure SQL Managed Instanceに接続する場合は、MSSQL 拡張機能を使用して、[ファイアウォール規則の追加] ダイアログを使用してファイアウォール規則を追加できます。

[ファイアウォール規則の追加] ダイアログで、サーバーを管理するアクセス許可を持つMicrosoft アカウントでサインインし、規則に名前を付け、現在の IP アドレスのみを許可するか範囲を許可するかを選択します。 ルールを保存すると、接続が自動的に再試行されます。

ルール名と IP 範囲のフィールドを含む [ファイアウォール規則の追加] ダイアログのスクリーンショット。

ワークスペース接続

保存された接続と接続グループは、Visual Studio Code settings.jsonに格納されます。 拡張機能は、次の 2 つのスコープから接続を読み取ります。

  • ユーザー (グローバル) 設定: 新しい接続がここに保存されます。 開いているフォルダーに関係なく、すべてのVisual Studio Code セッションで使用できます。

  • ワークスペースの設定: ワークスペース レベルで保存された接続は、そのワークスペースが開いている場合にのみ使用できます。 このスコープは、ワークスペースの .code-workspace ファイルをソース管理にチェックすることで、コラボレーターと共有するプロジェクト固有の接続に役立ちます。

接続をユーザー設定からワークスペース設定に移動するには、接続の JSON エントリをユーザー settings.json からワークスペース settings.jsonにコピーし、ユーザー構成から削除します。

Note

拡張機能は、個々の ワークスペース フォルダー 設定 (フォルダーごとの .vscode/settings.json マルチルート ワークスペース内) からの接続を読み取りません。 接続を特定のプロジェクトに適用する場合は、代わりにワークスペース レベルで保存します。

パスワードまたはシークレットを使用して接続を保存すると、そのパスワードは settings.jsonに格納されません。 パスワードは、Visual Studio Codeのセキュリティで保護された資格情報ストアに個別に保持されます。

新しい SQL ファイルまたはエディターを開くときの接続の選択

.sql ファイルを開くか、新しい SQL エディターを作成すると、拡張機能はエディターを切断したままにするか、自動的に接続することができます。

この動作は、次の 3 つのモードをサポートする mssql.newEditorConnectionBehavior 設定によって制御されます。

モード Description
none 接続なしで新しい SQL エディターが開きます。 クエリを初めて実行するときに接続を選択するように求めるメッセージが表示されます。または、 SQL: Connect コマンドを使用して接続を手動で接続できます。
transferActive (既定値) 新しい SQL エディターは、現在アクティブな SQL エディターと同じデータベースに自動的に接続されます。 これは、同じデータベースに対して複数のファイルを操作していて、それぞれを再接続したくない場合に便利です。 現在アクティブな SQL エディターがない場合は、接続なしで新しいエディターが開きます。
defaultConnection 新しい SQL エディターは、既定として指定した特定の接続に自動的に接続されます。 既定の接続は、 mssql.defaultConnectionId 設定によって識別されます。

このモードを使用するには、 mssql.defaultConnectionId をいずれかの保存された接続の ID に設定する必要もあります。 ID は、 settings.jsonで保存されている接続を確認することで確認できます。 mssql.defaultConnectionIdが設定されていないか、保存された接続と一致しなくなった場合、拡張機能は、次回新しい SQL エディターを開く際に既定の接続を選択するように求められます。

これらの設定は、mssql.newEditorConnectionBehaviorまたはmssql.defaultConnectionIdを検索することで、Visual Studio Code設定 UI から変更できます。