
Azure Data Studioが廃止されるのでVS Codeの拡張機能(MSSQL)でRDS for SQL Serverに接続してみた
こんにちは、なおにしです。
パブリックアクセスを有効にしたRDS for SQL Serverに対してVS Code の拡張機能(MSSQL)を使用して接続する機会がありましたのでご紹介します。
はじめに
普段全くSQL Serverに触れる機会がなかったため、検証のためにパブリックアクセスを有効にしたRDS for SQL Serverを起動し、Microsoft SQL Server Management Studio(SSMS)を使用して接続してみようと考えました。
ところが調べてみるとSSMSはWindows用にしか提供されておらず、普段Macを使用している私ではすぐに利用できないことが分かりました。
というわけで検索するとすぐに出てきたのが以下のQ&Aです。回答としては「Azure Data Studio」を使用しましょうということでした。
Azure Data Studioについては弊社の記事でも紹介されていました。
みなさん、SSMS(SQL Server Management Studio)は使っていますか。
SQL Serverを扱う方はおそらくみなさん使いますよね。では、Windows以外でSQL Serverを扱う方はどうされてますか。
クロスプラットフォームな Azure Data Studio が便利ですよね。
そのまま現在の私の状況だったので、早速Azure Data Studioを使おうと思ってダウンロードページに行くと以下のような記載がありました。
Azure Data Studio は 2026 年 2 月 28 日 に廃止される予定です。 Visual Studio Codeを使用することをお勧めします。
2025年2月6日に廃止の発表があったようです。
廃止理由については上記アナウンスにも記載がありますが、以下のドキュメントもご参照ください。
特に、全ての機能がVS Codeで代替されるわけではなく、VS Codeでの実装はまだ開発中の機能も多いことにご注意ください。執筆時点では以下のとおりです。
Azure Data Studio の SQL Server 機能に推奨される代替手段
Azure Data Studio 拡張機能 説明 取り替え SQL Server エージェント SQL Server エージェント ジョブを管理および自動化します。 SQL Server Management Studio (SSMS) SQL Server プロファイラー SQL Server アクティビティをトレースおよび監視します。 SQL Server Management Studio (SSMS) データベース管理 Windows でデータベースを管理するためのツール。 SQL Server Management Studio (SSMS) スキーマ データベース スキーマを比較して同期します。 Visual Studio SQL Server Data Tools (SSDT)。 VS Code 用 MSSQL 拡張機能の開発中。 フラット ファイルのインポート .txt
ファイルと.csv
ファイルをデータベースにインポートします。一括挿入/PowerShell。 Visual Studio Code 用 MSSQL 拡張機能の開発中。 DACPAC のインポート/エクスポート DACPAC ファイルを展開して抽出します。 Visual Studio Code 用の SqlPackage/MSSQL 拡張機能。 Azure SQL の移行 SQL Server を Azure SQL に移行します。 Azure portal (今後の更新プログラムが予定されています)。 Notebooks SQL + Markdown 対話型ドキュメント。 Visual Studio Code のポリグロットノートブック。 SQL Database プロジェクト SQL データベース プロジェクトを作成、管理、およびデプロイします。 VS Code および Visual Studio 用の MSSQL 拡張機能で完全にサポートされています。
というわけでVS Codeの拡張機能を使用してRDS for SQL Serverに接続してみます。
やってみた
RDS for SQL Serverの起動については割愛します。特記事項としては、冒頭に記載のとおりパブリックアクセスを有効にしていることと、セキュリティグループでTCPポート1433かつアクセス元IPアドレスのみ許可しているという点です。
拡張機能のインストール方法については公式ドキュメントにまとまっていますので、ドキュメントに基づいて実際にやってみます。
対象の拡張機能「MSSQL」を検索してインストールします。
パッケージがインストールされ、左ペインにアイコンも追加されました。
インストールすると以下の通知が表示されるので、ドキュメントに記載のとおり「エクスペリエンスの有効化と再読み込み」ボタンを選択します。
準備ができたので「接続の追加」からパブリックなRDS for SQL Serverに対して接続する設定を追加します。
以下のように設定して接続を試行したところ、エラーが発生しました。
The client was unable to establish a connection because of an error during connection initialization process before login. Possible causes include the following: the client tried to connect to an unsupported version of SQL Server; the server was too busy to accept new connections; or there was a resource limitation (insufficient memory or maximum allowed connections) on the server. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed)
あまり調べずにとりあえず暗号化を強制するという意味で「Encrypt:Strict」を選択していたのですが、SSMSのドキュメントに以下がきちんと明記されていました。。
With Strict (SQL Server 2022 and Azure SQL) encryption selected, the Trust server certificate option is unavailable.
このためEncryptの設定を「Strict」から「Mandatory」に変更して再接続してみます。
接続できました。
右クリックのメニューから「新しいクエリ」を選択します。
なお、この右クリックのメニュー表示だけでも、以下のSSMSの画面と比較するとかなり機能が限定されていることが分かるかと思います。
それでは実際にクエリを実行してみます。
パブリックなRDS for SQL Serverに接続している状態なので、まずは以下の記事を参考に通信の暗号化状況を確認してみます。
select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID
暗号化されているようです。続いて、DBとテーブルの作成を試してみます。
CREATE DATABASE DemoDB;
GO
USE DemoDB;
GO
CREATE TABLE dbo.Employees
(
EmployeeID INT IDENTITY(1,1) PRIMARY KEY,
FirstName NVARCHAR(50) NOT NULL,
LastName NVARCHAR(50) NOT NULL,
Department NVARCHAR(50),
HireDate DATE DEFAULT GETDATE()
);
GO
クエリは正常に実行されましたが、更新ボタンを押さないと表示されないようでした。
データを追加して表示してみます。
INSERT INTO dbo.Employees (FirstName, LastName, Department, HireDate)
VALUES
('John', 'Doe', 'Sales', '2022-01-15'),
('Jane', 'Smith', 'HR', '2021-09-23'),
('Alice', 'Johnson', 'IT', '2020-05-10'),
('Bob', 'Brown', 'Finance', '2019-12-01');
GO
SELECT TOP 3 *
FROM dbo.Employees
ORDER BY HireDate DESC;
GO
出力結果はExcelのようにソートしたり選択したりできます。
また、右端のボタンからCSV・JSON・Excelデータとして保存もできるようです。ただし、上記でソート・選択した結果ではなく出力された状態が保存されていました。
まとめ
SSMSとの違いを確認するために結局Windows機にSSMSをインストールして接続してみましたが、VS Codeの拡張機能(MSSQL)でも同じようなUIでSQL Serverに接続できることが確認できました。
現状では機能は限定的であるものの、クロスプラットフォームなツールとして今後さらに充実していって欲しいと思いました。
本記事がどなたかのお役に立てれば幸いです。