Azure SQLで使うGitHub Copilot in SSMS入門|変更点・設定・展開時の注意点

Azure SQLをSQL Server Management Studio(SSMS)で扱っているなら、今回まず押さえるべき結論はシンプルです。GitHub Copilot in SQL Server Management Studioは、Azure SQLそのものにAIが組み込まれる変更ではなく、SSMS 22以降のクライアント上でT-SQL作成・調査・管理作業を支援するAI機能です。

使い始めるには、SSMS 22以降、AI Assistanceワークロード、GitHub Copilotを利用できるGitHubアカウントが必要です。特に管理者は、ライセンス、ネットワーク、データベース権限、監査、既存のSSMS 21向けCopilot構成との違いを確認してから展開すべきです。Microsoft Learnでは、GitHub Copilot in SSMSがT-SQLの作成、編集、回答、管理者タスクの提案をSSMS内で行うAIアシスタントとして説明されています。(Microsoft Learn)

目次

Azure SQLのAI/Copilot更新で何が変わるのか

今回のポイントは、Azure SQL DatabaseやAzure SQL Managed InstanceをSSMSから操作する開発者・DBAが、SSMS上でGitHub Copilotの支援を受けやすくなったことです。SSMS 22はAzure SQL DatabaseやAzure SQL Managed Instanceに対応しており、SSMS 22系の最新リリースではGitHub Copilot関連の改善や修正も継続的に入っています。(Microsoft Learn)

一方で、Azure SQLの権限モデルや本番データベースの安全性が自動的に変わるわけではありません。Copilotが提案したクエリを使う場合も、実行するのは接続中のユーザーです。つまり、管理者が最初に見るべきなのは「Copilotを入れるかどうか」だけでなく、「誰が、どのDBに、どの権限で、どの範囲までAI支援を使うか」です。

観点変更・確認ポイントAzure SQL利用者への影響
利用環境SSMS 22以降でGitHub Copilotを利用開発者のSSMS更新計画が必要
インストールVisual Studio InstallerでAI Assistanceワークロードを追加標準PCイメージや配布手順の見直しが必要
アカウントGitHubアカウントとCopilot利用権限が必要Azureアカウントだけでは完結しない
T-SQL支援チャット、インラインチャット、コード補完、次の編集候補を利用クエリ作成・修正・調査の初動が速くなる
データベース文脈Database instructionsで業務ルールをDB側メタデータとして保持売上定義、命名規則、利用禁止パターンなどを明示しやすい
セキュリティCopilot専用のDB権限はないSQL Server/Azure SQL側の権限設計が重要

SSMS 21向けCopilotとの違いを混同しない

既存環境で注意したいのが、SSMS 21向けの「Copilot in SSMS」と、SSMS 22以降の「GitHub Copilot in SSMS」は前提が異なる点です。

Microsoftの旧Copilot in SSMSページでは、SSMS 21向けCopilotはSSMS 22のGitHub Copilotに置き換えられたと説明されています。SSMS 21向けのCopilotではAzure OpenAI in Microsoft Foundryのエンドポイントやデプロイメント設定が前提でしたが、SSMS 22以降のGitHub Copilot in SSMSではGitHubアカウントとCopilot利用権限を使う導線が中心です。(Microsoft Learn)

既にSSMS 21でAzure OpenAI連携を検証していた組織は、次の3点を分けて確認してください。

確認項目SSMS 21向けCopilotSSMS 22以降のGitHub Copilot in SSMS
主な前提Azure OpenAI in Microsoft FoundryのエンドポイントGitHubアカウントとCopilot利用権限
インストールAI AssistanceワークロードAI Assistanceワークロード
利用開始Azure OpenAI設定を入力SSMS右上のCopilotバッジからサインイン
管理観点Azureリソース、APIキー、Entra認証GitHub Copilotライセンス、組織ポリシー、ネットワーク

移行時に「Azure OpenAIの設定があるから、そのままSSMS 22でも同じ動きになる」と考えると、展開計画がずれます。SSMS 22以降では、GitHub側のライセンス・ポリシー・認証設計を別途確認しましょう。

GitHub Copilot in SSMSで使える主な機能

GitHub Copilot in SQL Server Management Studioでは、自然言語のチャットだけでなく、T-SQLエディター上の補完や、データベース固有の業務ルールを反映する仕組みも用意されています。Microsoft Learnでは、Chat、Code Completions、Next Edit Suggestions、Database instructionsが主要機能として整理されています。(Microsoft Learn)

機能できること実務での使いどころ注意点
ChatSQLや接続中DBについて自然言語で質問クエリのたたき台、エラー原因の調査、互換性レベルの確認回答をそのまま本番実行しない
Inline Chatエディター内でコードの追加・修正を依頼開いているSQLファイルのリファクタリング差分を確認してから適用する
Code CompletionsT-SQL入力中に灰色の候補を表示SELECT文、JOIN、集計、条件句の補完SSMS 22.2以降が必要。設定で無効の場合がある
Next Edit Suggestions直近の編集から次の修正箇所を予測別名変更、typo修正、同じパターンの修正Tabで移動・適用するため、誤適用に注意
Database instructions業務ルールや利用規約をDBメタデータとして保持売上定義、ステータス値、命名規則、禁止クエリの明示SSMS 22.3以降。誤った指示は全利用者に影響する可能性がある
Markdown/Mermaid生成MarkdownプレビューやMermaid図の生成ER図、手順書、調査メモの作成図はスキーマ理解の補助としてレビューする

Code CompletionsはSSMS 22.2以降でT-SQLを対象に利用でき、Tools > Options > Text Editor > Inline Suggestions > Generalから有効化できます。SSMS 22.5.2ではコード補完が既定で無効化されたため、「Copilot Chatは使えるのに灰色の補完が出ない」という場合は、まずこの設定を確認してください。(Microsoft Learn)

Azure SQLで特に効果が出やすい活用シーン

GitHub Copilot in SSMSは、SQLを自動実行する魔法の機能ではありません。効果が出やすいのは、人が判断する前の下書き・説明・比較・調査を速くする場面です。

T-SQLのたたき台を作る

たとえばAzure SQL Databaseで売上集計を作る場合、最初から列名やJOIN条件を思い出しながら書くより、Copilotに下書きを作らせてレビューする方が速い場面があります。

例:

Sales.OrderHeaderSales.OrderLineを使って、過去30日の売上を日別に集計するT-SQLを作成して。SELECT *は使わず、必要な列名を明示して。返金はSales.Refundを差し引いて。

このように、対象テーブル、期間、禁止事項、業務ルールを具体的に入れると、曖昧なSQLが出にくくなります。

実行計画や結果ペインの読み取りを補助する

SSMS 22.5.0では、GitHub Copilot in SSMSが結果ペイン、実行計画、メッセージ、クライアント統計、結果グリッドとのやり取りをサポートする更新が入っています。(Microsoft Learn)

たとえば、次のように使えます。

この実行計画でコストが高い演算子を説明して。インデックス追加、クエリ書き換え、統計更新のどれを優先すべきか、理由付きで整理して。

ただし、インデックス追加や統計更新は本番負荷に影響します。提案はDBAが確認し、開発環境やステージング環境で検証してから反映しましょう。

スキーマ理解やER図作成を短縮する

Copilot ChatはMermaid図を生成できます。接続中データベースや追加した参照情報をもとに、テーブル関係や作業フローをMarkdown上で可視化できます。(Microsoft Learn)

例:

このデータベースのSalesスキーマにある主要テーブルの関係をMermaidのER図で出して。外部キーがない関係は推測と分かるようにコメントして。

ポイントは、「推測」と「実際の制約」を分けさせることです。外部キーがないDBでは、AIが列名から関係を推測することがあります。

レガシークエリの説明・リファクタリング

長いストアドプロシージャや複雑なJOINを読むときは、いきなり書き換えを依頼するより、まず説明させる方が安全です。

おすすめの順序は次の通りです。

手順依頼内容目的
最初このクエリが何をしているか、処理単位で説明して理解
副作用のある処理、重い処理、NULLで結果が変わる箇所を指摘してリスク抽出
可読性を上げる書き換え案を出して。ただし結果が変わる可能性がある箇所は明示して改善案作成
最後変更前後で結果を比較する検証SQLを作成してテスト

使い始める前に確認すべき前提条件

GitHub Copilot in SSMSをAzure SQLで使う前に、次の項目を確認してください。

確認項目推奨確認内容
SSMSバージョンSSMS 22以降。コード補完やNext Edit SuggestionsはSSMS 22.2以降、Database instructionsはSSMS 22.3以降を確認
OSSSMS 22は64bitのWindows 11、Windows Server 2025/2022/2019などをサポート。32bitとArm32 OSは非対応
インストール方式Visual Studio InstallerでSSMSをインストール・更新・変更
ワークロードAI Assistanceワークロードが入っているか
GitHubアカウントCopilot利用権限があるか。検証ならCopilot Freeも選択肢
ネットワークGitHub Copilotサービスへ接続できるか。プロキシや証明書の制約がないか
Azure SQL権限最小権限のログインで接続しているか
本番利用方針本番DBでの利用可否、DML/DDL提案の扱い、レビュー手順が決まっているか

SSMS 22はVisual Studio Installerで管理され、従来の単独MSIではなくvs_SSMS.exeを使う形です。オフライン環境や管理された端末への配布では、ローカルレイアウトやコマンドラインインストールの検討が必要です。(Microsoft Learn)

GitHub Copilot in SSMSを有効化する手順

実際の導入は、いきなり本番利用者全員に展開するのではなく、開発チームやDBAの少人数で検証してから広げるのが安全です。

手順作業確認ポイント
1SSMS 22以降をインストールまたは更新Visual Studio Installerで対象バージョンを確認
2AI Assistanceワークロードを追加GitHub Copilotが未インストールの場合に必要
3SSMSでAzure SQL DatabaseまたはManaged Instanceへ接続まずは開発・検証DBを使う
4SSMS右上のGitHub Copilotバッジを開くOpen Chat Window to Sign Inを選択
5GitHubアカウントでサインインCopilot Freeまたは既存のCopilot権限を利用
6必要に応じてコード補完を有効化Inline Suggestions設定を確認
7読み取り専用に近い権限で検証提案SQLをレビューしてから実行

Microsoft Learnの手順でも、SSMSでサーバーまたはデータベースに接続し、右上のGitHub Copilotバッジからチャットウィンドウを開いてサインインする流れが示されています。GitHub Copilotが未インストールの場合は、CopilotバッジまたはVisual Studio InstallerからAI Assistanceワークロードを追加します。(Microsoft Learn)

管理者が最優先で確認すべきセキュリティポイント

Copilot専用のDB権限はない

GitHub Copilot in SSMSで生成されたクエリは、接続中ユーザーのログインと権限のコンテキストで扱われます。Microsoft Learnは、Copilotに別個の権限はなく、Ask modeの読み取り専用判定もセキュリティ境界ではないため、SQL Server側の権限で最小権限を強制すべきだと説明しています。(Microsoft Learn)

これはAzure SQL運用で非常に重要です。たとえば開発者に本番DBのdb_owner相当の権限がある状態でCopilotを使わせると、AIが危険な操作を自動で行うというより、人が危険なSQLを受け入れて実行できてしまう状態になります。

最低限、次のルールを決めてください。

項目推奨ルール
本番DB接続原則読み取り専用、必要な場合のみ限定的な実行権限
DDL/DMLCopilot提案をそのまま実行せず、レビュー・承認・バックアップ確認を必須化
個人情報・機密情報プロンプトに実データを貼り付けない。必要ならマスキング済みサンプルを使う
管理者作業メンテナンス、権限変更、インデックス追加はDBAレビューを必須化
検証環境最初は開発DB、サンプルDB、匿名化済みDBで試す

GitHub Copilotの組織ポリシーを確認する

企業利用では、個人のCopilot FreeやCopilot Proに任せるより、GitHub Copilot BusinessまたはEnterpriseのポリシー管理を確認すべきです。GitHub Docsでは、組織所有者がCopilotの機能やモデルの利用可否、プライバシー関連のポリシーを管理できると説明されています。(GitHub Docs)

特に確認したいのは次の項目です。

ポリシー観点確認内容
利用対象者どのチーム・ユーザーにCopilotライセンスを付与するか
モデル利用利用可能なモデルやプレビュー機能の扱い
公開コード一致公開コードと一致する候補を許可するかブロックするか
フィードバック利用者からのフィードバック収集を許可するか
ネットワーク社内プロキシ、ファイアウォール、証明書でブロックされないか

公開コードと一致する候補については、個人設定または組織・Enterprise側の設定で扱いを制御できます。個人が組織からCopilotシートを割り当てられている場合、公開コード一致に関する設定は組織またはEnterpriseから継承される場合があります。(GitHub Docs)

Database instructionsは「AI用の業務ルール台帳」として使える

Database instructionsは、Azure SQLを使うチームにとって特に実用的です。これは、売上定義、ステータス値、命名規則、利用すべき標準テーブルなどをデータベース側のメタデータとして保持し、Copilotの回答に反映させる仕組みです。

Microsoft Learnでは、Database instructionsは拡張プロパティとして保存され、ユーザーが同じデータベースにアクセスするとセッションをまたいで利用できると説明されています。SSMS 22.3以降とAI Assistanceワークロードが前提で、オブジェクトの拡張プロパティ名はAGENTS.mdを使います。(Microsoft Learn)

たとえば、売上定義が部署ごとにぶれやすい場合、次のような指示をテーブルに付けておくと、Copilotに毎回説明する手間を減らせます。

EXEC sys.sp_addextendedproperty
    @name = N'AGENTS.md',
    @value = N'売上はNetAmountからRefundAmountを差し引いた金額として扱う。SELECT * は使用せず、必要な列名を明示する。',
    @level0type = N'SCHEMA',
    @level0name = N'Sales',
    @level1type = N'TABLE',
    @level1name = N'OrderHeader';

ただし、Database instructionsは便利な反面、誤った業務ルールを保存すると、利用者全体に誤解を広げる可能性があります。導入するなら、次の運用ルールを決めてください。

項目推奨運用
作成権限DB所有者、DBA、データ責任者などに限定
変更管理スクリプトをGit管理し、レビュー後に反映
内容業務定義、禁止パターン、標準テーブル、計算式を具体的に書く
禁止事項個人情報、秘密鍵、認証情報、顧客固有の機密メモを入れない
更新・削除誤りがあればsp_updateextendedpropertyまたはsp_dropextendedpropertyで修正

また、Ask modeではCopilotが変更クエリを実行できないため、Database instructionsを追加するT-SQLが生成されても、実行前に必ず人が確認する必要があります。(Microsoft Learn)

展開時に失敗しやすいポイントと対処法

GitHub Copilot in SSMSの導入でよく詰まるのは、AIそのものの品質よりも、インストール、認証、ネットワーク、設定、権限の問題です。

症状主な原因対処
Copilotバッジはあるが使えないサインインしていない、Copilot利用権限がない、管理者が無効化しているGitHubアカウント、ライセンス、組織ポリシーを確認
CopilotがUnavailableになるネットワーク、サービス側障害、資格情報の期限切れインターネット接続、GitHub Status、資格情報更新を確認
Chatは使えるが補完が出ないCode Completionsが無効Inline Suggestions設定を確認
期待と違うSQLが出る業務ルールや対象テーブルが曖昧プロンプトに列名、除外条件、禁止事項を明記
Database instructionsが効かないSSMSバージョン不足、拡張プロパティ名の誤り、接続DB違いSSMS 22.3以降、AGENTS.md、対象DBを確認
本番で危険なSQLが実行されそうになるDB権限が広すぎる、レビュー手順がない最小権限、差分確認、承認フローを導入
ログ調査ができない監査設計が未整備Extended Eventsやログ出力場所を確認

トラブルシューティングでは、Microsoft LearnがCopilotの一時的な到達不能、ネットワーク問題、サービス停止、資格情報更新、管理者による無効化を確認ポイントとして挙げています。また、Copilot関連ログの保存先や、Extended Eventsでclient_app_nameを使ってCopilot由来のクエリを監視する方法も示されています。(Microsoft Learn)

監査で使う代表的なclient_app_nameは次の通りです。

用途client_app_name
Chatウィンドウのプロンプトから生成されたクエリMicrosoft SQL Server Management Studio - GitHub Copilot
Code Completions由来のクエリMicrosoft SQL Server Management Studio - Copilot Completions

オフライン・管理端末への展開で見るべきこと

社内標準端末や閉域寄りの環境では、個々の開発者が自由にSSMSを更新できないことがあります。その場合は、Visual Studio Installer、コマンドラインインストール、オフラインレイアウトを使った展開を検討します。

オフラインレイアウトでは、vs_SSMS.exe --layoutで必要なファイルを事前に取得し、展開先にコピーできます。ただし、レイアウト作成時にはインターネット接続が必要です。また、クライアント側で不足コンポーネントを選ぶとインターネットから追加取得しようとするため、作成時とインストール時のオプションをそろえる必要があります。(Microsoft Learn)

管理者が確認すべき展開チェックリストは次の通りです。

分類確認項目
インストール権限管理者権限でSSMS更新・変更ができるか
端末要件Windows 11または対応Windows Serverの64bit環境か
配布方法Visual Studio Installer、コマンドライン、オフラインレイアウトのどれを使うか
コンポーネントAI Assistanceワークロードを含めるか
ネットワークGitHub Copilotの必要通信が許可されているか
証明書プロキシやSSLインスペクション環境で問題が出ないか
更新運用SSMS更新時に業務中のSSMSを閉じる案内があるか
ロールバック問題発生時に旧バージョン併用や段階展開ができるか

SSMS 22は過去バージョンとサイドバイサイドでインストールできるため、全員一斉切り替えではなく、検証チームから段階的に展開しやすい構成です。(Microsoft Learn)

開発者が安全に使うためのプロンプト例

Copilotへの依頼は、曖昧なほど危険です。Azure SQLで使う場合は、対象、制約、出力形式、禁止事項を入れると実務に使いやすくなります。

目的プロンプト例
集計SQL作成dbo.Ordersdbo.OrderItemsを使い、過去30日の売上を日別に集計するT-SQLを作成して。SELECT *は禁止。返金はdbo.Refundsを差し引く。
クエリ説明このSQLを処理単位で説明して。副作用のある処理、NULLで結果が変わる箇所、性能上の懸念を分けて出して。
リファクタリング結果を変えずに可読性を上げる書き換え案を出して。結果が変わる可能性がある変更は別枠にして。
インデックス検討この実行計画をもとに、インデックス候補、統計更新、クエリ書き換えの優先度を理由付きで整理して。
障害調査このエラーメッセージの原因候補を、認証、権限、ネットワーク、SQL構文に分けて確認手順付きで出して。
Mermaid図Salesスキーマの主要テーブル関係をMermaid ER図にして。外部キーがない関係は推測と明記して。
本番向けレビューこのSQLを本番で実行する前のリスクを、ロック、実行時間、ロールバック、権限、監査の観点で確認して。

特に本番DBでは、「実行して」ではなく「実行前に確認すべき点を出して」「読み取り専用で確認するSQLにして」「DDL/DMLは提案だけにして」と明示するのが安全です。

導入するべきチームと慎重に進めるべきチーム

GitHub Copilot in SSMSは便利ですが、どのチームにも同じ速度で展開すべきものではありません。導入判断は、SQL作業量、権限管理、組織ポリシー、ネットワーク制約で分けると現実的です。

状況判断
T-SQL作成や調査が多く、SSMS 22を展開済み優先的に検証する価値が高い
開発DB・検証DBでの利用が中心比較的始めやすい
GitHub Copilot Business/Enterpriseの管理が整っている組織展開に向いている
本番DBに広い書き込み権限を持つ開発者が多い権限整理が先
社内ポリシーでGitHub利用や外部AI利用が制限されている法務・セキュリティ確認が先
閉域、厳格なプロキシ、証明書制御があるネットワーク検証が先
SSMS 21のAzure OpenAI連携を独自運用しているSSMS 22移行設計を分けて検討

まず取るべき次のアクション

Azure SQL環境でGitHub Copilot in SQL Server Management Studioを安全に始めるなら、最初の一歩は「全社展開」ではなく「制御された小規模検証」です。

まず、DBAまたはリード開発者の端末にSSMS 22以降とAI Assistanceワークロードを入れ、開発用Azure SQL Databaseへ最小権限のユーザーで接続します。次に、GitHub Copilotのライセンスと組織ポリシー、公開コード一致設定、ネットワーク接続、コード補完設定を確認します。そのうえで、代表的な業務クエリ、実行計画、Database instructionsを使い、生成結果の精度とレビュー手順を検証してください。

本番展開の判断は、少なくとも次の4点を満たしてからにするのが安全です。

  • SSMS 22以降とAI Assistanceワークロードの配布手順が決まっている
  • GitHub Copilotのライセンス・組織ポリシー・ネットワーク要件を確認済み
  • Azure SQL側で最小権限と監査の設計ができている
  • Copilotの提案SQLをレビューしてから実行する運用ルールがある

GitHub Copilot in SSMSは、Azure SQLの開発・運用を置き換えるものではありません。SQLを書く、読む、調べる、説明する時間を短縮する補助線として使うことで、DBAと開発者の判断を速くし、ミスを減らすための実用的なツールになります。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次