Azure Database for MySQL のロゴ

マネージドMySQL MySQLに対応しています

接続する Azure Database for MySQL Excel、Google Sheets、AI、RESTへ

Azure Database for MySQL Flexible Server、3306。このカードはFlexible Server向けに設計されており、重要な箇所にその旨が明記されています。

一つの接続、あらゆる表面

Azure MySQL のデータが保存される場所

Query Streams は、単一の読み取り専用接続を介して、Microsoft Excel、Google Sheets、Power BI、MCP 経由の AI アシスタント、および REST エンドポイントから Azure Database for MySQL を読み取ります。このカードは、現在の提供サービスであるフレキシブル サーバー用であり、Azure PostgreSQL のコピーではなく、Azure トリオの MySQL メンバーです。保存する前に知っておくべき違いが 2 つあります。PostgreSQL 側ではエージェントがホスト名で TLS を強制しますが、ここではチェックボックスに従います。

Azure Database for MySQL は、MySQL のネットワークです — 標準ドライバーなので、以下のガイドはすべて変更なく適用されます。Azure MySQL 固有の部分は接続文字列のみで、以下で説明します。 接続の詳細.

  1. チーム、ベンダー、パートナーの皆様へ
  2. Azure MySQL から Excel への変換 Microsoft Excel · Excelアドイン

    Azure MySQL のリアルタイムの結果をワークシートに直接取り込み、必要に応じて更新できます。対応環境は、デスクトップ版 Excel、Excel Online、Microsoft 365 です。

    MySQLガイド
  3. Azure MySQL から Google スプレッドシートへの変換 Sheetsアドオン

    サイドバーから保存済みのAzure MySQLクエリを実行し、結果をシートにドラッグ&ドロップします。共有している共同作業者は、各自でシートを更新できます。

    MySQLガイド
  4. NovaにAzure MySQLについて聞いてみよう Nova AI · テキストからSQLへ

    平易な英語で質問してください。Novaは既にAzure MySQLテーブルを認識しており、SQL文を作成して実行し、回答を説明してグラフ化します。クエリを作成する必要も、認証情報を渡す必要もありません。

    Novaの仕組み
  5. Azure MySQL からデータ ビューアーへ 結果共有 · チーム、ベンダー、パートナー · 電話、タブレット、デスクトップ

    Azure MySQL の実行結果を、同僚、ベンダー、パートナーなど、誰とでも共有できます。共有されたグリッドはブックマーク可能で、スマートフォン、タブレット、デスクトップなど、どのデバイスで開いても常に最新の状態に戻ります。相手には結果のみが表示され、SQL や認証情報は一切表示されません。

    データビューアの仕組み
  6. アプリとシステム向け
  7. Azure MySQL REST API HTTPエンドポイント

    Azure MySQLクエリを、認証済みのJSONエンドポイントとして公開します。このエンドポイントは、OpenAPI 3.1仕様に準拠しており、Postman、Insomnia、Hoppscotch用の既製コレクションも用意されているため、どのアプリケーションでも呼び出すことができます。データベースポートは開かれません。

    MySQLガイド
  8. Azure MySQL から Power BI へ Power Query M

    生成された Power Query M を Power BI アドバンスト エディターに貼り付けると、レポートは HTTPS 経由で Azure MySQL のリアルタイムの結果を読み取ります。ODBC ドライバーもデータベース ポートも必要ありません。

    Power BI の仕組み
  9. Azure MySQL から Airtable へ 自動化プラットフォーム

    Azure MySQL の行をスケジュールに基づいて Airtable に同期したり、Airtable の自動化スクリプト内で取得したりできます。

    MySQLガイド
  10. Azure MySQL から Baserow へ 自動化プラットフォーム

    Azure MySQLからBaserowテーブルへ、RESTエンドポイント経由でデータを供給します(セルフホスト環境またはBaserowクラウド環境)。

    MySQLガイド
  11. Azure MySQL から SeaTable へ 自動化プラットフォーム

    ファイルをエクスポートしたりデータベースを公開したりすることなく、Azure MySQLデータを使用してSeaTableベースを常に最新の状態に保つ。

    MySQLガイド
  12. Azure MySQL から Smartsheet へ 自動化プラットフォーム

    Azure MySQL の結果を Smartsheet グリッドにプッシュすることで、計画やレポートが先週のエクスポートではなく、ソースシステムから読み込まれるようになります。

    MySQLガイド
  13. Azure MySQL から Anvil へ Anvil Works · アプリプラットフォーム

    Anvil PythonアプリをAzure MySQLでバックアップするには、アプリにデータベース認証情報を埋め込むのではなく、RESTエンドポイントを使用します。

    MySQLガイド
  14. AIツール向け
  15. Azure MySQL MCPサーバー Claude、Cursor、およびMCPクライアント

    AIアシスタントに、正しいSQLを作成するために必要なスキーマを含むAzure MySQLへの読み取り専用アクセス権を付与します。チャットに認証情報を含める必要はありません。

    MySQLガイド
  16. 人々に届けられる
  17. Azure MySQL のアラートとレポート Slack · Discord · メール · Webhook

    Azure MySQLクエリをスケジュール設定し、結果をSlack、Discord、メール、または署名付きWebhookに送信するか、行数、しきい値、または変化率が設定した値を超えるまでメッセージを保留することができます。

    アラートとレポートの仕組み

仕組み

5つのステップ、受信ファイアウォールの変更は不要

01

ネットワークエージェントは、サーバーにアクセスできる場所にインストールしてください。ネットワークエージェントは送信接続のみを行うため、パブリックアクセスを有効にする必要はありません。VNet内の仮想マシンがプライベートエンドポイントと通信する構成が最適であり、受信ルールも不要です。

02

Azureポータルからサーバー名を取得してください。サーバー名は.mysql.database.azure.comで終わりますが、カードはこの接尾辞を自動的に認識します。

03

ユーザー名は簡潔に入力してください。Flexible Serverはuser@servername形式を使用しておらず、そのような形式を貼り付けるとカードがエラーを検知します。

04

SSLを使用する設定はオンのままにしておいてください。デフォルトでオンになっており、このカードではチェックボックスによって設定が決定されます。ホスト名に関するルールは適用されません。

05

保存します。Microsoft Excel、Google Sheets、Power BI、MCP、REST はすべて、その単一の接続を介して読み取るか、単一の読み取り専用ステートメントで他のソースと結合します。

機能の詳細解説

Azure MySQL が提供するもの

ここでTLSはホスト名ではなくチェックボックスに従います。

ここはAzure PostgreSQLのページをそのままコピーするのが間違っている唯一の箇所なので、はっきりと述べておく価値がある。

  • SSLの使用はデフォルトで有効になっており、有効になっている間は接続が暗号化されます。 エージェントはMySQLに必須のTLSセッションを要求します。
  • これをオフにすると、エージェントは暗号化されていない接続を試みます。MySQL パスにはホスト名に基づいてそれを上書きする設定はなく、まさにこの点が、このカードが Azure PostgreSQL と異なる点です。
  • 理由は見落としではなく構造的なものです。エージェントはTLSを強制するホスト型Postgresホスト名のテーブルを保持していますが、MySQLにはそれに相当する機能がありません。チェックボックスがその仕組みのすべてです。
  • 暗号化は証明書の検証ではありません。エージェントはTLSを要求しますが、サーバーの証明書チェーンを検証しないため、これは通信内容の証明ではなく、傍受に対する保護策として捉えてください。

柔軟なサーバーとユーザー名の罠

AzureはMySQLを2つの形式で提供しており、ユーザー名の表示形式について意見が分かれている。このカードはどちらか一方の立場を示している。

  • このカードはフレキシブルサーバー向けに設計されています。ポートはデフォルトで3306に設定されており、サーバー名は.mysql.database.azure.comで終わります。
  • フレキシブルサーバーでは、シンプルなユーザー名を使用します。廃止されたシングルサーバーサービスでは、user@servername の形式が使われていましたが、この形式を貼り付けると、Azure が認証エラーとして拒否するのを防ぐため、末尾の拡張子を削除するように指示されます。
  • そこがエラーを捕捉するのに最適な場所です。@servername によるログインは、最終段階で一般的な認証エラーとして失敗し、実際には間違っていないパスワードのリセットをユーザーに促します。
  • 先頭または末尾に空白文字が含まれるパスワードもエラーとして検出されます。これはクリップボードの痕跡であり、通常の認証エラーと同様に失敗します。

プライベートエンドポイントはエージェントに適しています

エージェントは発信するだけで受信を待たないため、データベースサーバーを公開する通常の理由は当てはまりません。

  • エージェントを同じVNet内のVMに配置し、プライベートエンドポイントに向けます。パブリックアクセスは無効のままで構いません。
  • 受信ファイアウォールルールを追加する必要も、IPアドレスの許可リストを管理する必要も、お客様のネットワークと弊社ネットワーク間のVPN接続も必要ありません。エージェントが外部への接続を確立します。
  • 認証にはユーザー名とパスワードが必要です。Microsoft Entra IDはこのコネクタに組み込まれていないため、公開したい情報を読み取るためのスコープを設定したMySQLログインを使用してください。
  • 読み取り専用ユーザーであれば、2分程度の時間をかける価値はあります。クエリ ストリームは書き込みを行いませんが、それを確実に保証する最も安全な方法はデータベースを使用することです。
-- 通常の MySQL、読み取り専用、TLS 経由 SELECT c.name, COUNT(o.id) AS orders, SUM(o.amount) AS revenue FROM customers AS c JOIN orders AS o ON o.customer_id = c.id WHERE o.placed_at >= NOW() - INTERVAL 30 DAY GROUP BY c.name ORDER BY revenue DESC;

すべてのデータベースコネクタで共有されます

すべてのデータベースコネクタに当てはまる

  • 発信専用 エージェントは、クエリ ストリームへの暗号化された接続を 1 つだけ開きます。受信ポートの転送も、VPN も、IP 許可リストも不要で、データベースに関する情報がインターネットに公開されることは一切ありません。
  • 認証情報はそのまま保持されます データベースのユーザー名とパスワードは、エージェントをインストールしたマシン上に存在します。Query Streamsはこれらを受け取ることはなく、単独ではデータベースにアクセスできません。
  • 読み取り専用、強制 一度に1つのステートメントのみ、SELECT文とその関連文のみ。書き込みは、誰かが設定した権限に頼るのではなく、サーバーに送信される前に自分のマシン上で拒否されます。
  • エージェントは好きなだけデプロイできます サイト、リージョン、クラウドごとに1つずつ。ユーザーが確認できるすべてのデータソースは単一のドロップダウンリストに表示されるため、どのエージェントがどのデータをホストしているかを誰も知る必要はありません。

クエリが保存されると、次のようになります。

  • SQLではなく、機能を共有する。 同僚や外部パートナーが、クエリの背後にあるステートメントを見ることなく、クエリを実行してフィルターを変更できてしまう。
  • どちらの方向からでもフィルターをかける それらを@変数として自分で宣言するか、コネクタにWHERE句に既に存在するリテラル値を検出させて、ドロップダウンとして提供させます。
  • どこからでも読める Microsoft Excel、Google Sheets、Power BI、REST API、MCP上のAIアシスタント、クエリビルダー、Novaはすべて、同じ保存済みクエリを読み取ります。
  • 複数同時に実行 — 5つの保存済みクエリを5つのワークシートタブに表示し、結果の規模に関わらず同時にストリーミングします。
  • すでに接続済みの他のものにも接続してください — 別のデータベース、ビジネスAPI、またはファイルフォルダを、1つの読み取り専用ステートメントで取得します。

クロスソースSQL

Azure MySQL を他のデータと連携させる

1つのステートメントで、Azure MySQLとその他の接続を同時に処理できます。各ソースは実行可能な部分のみを実行し、結果をストリームで返送します。結合処理は中央で行われるため、ソース同士が直接通信したり、データがコピーされたりすることはありません。

接続数3件・エージェント数3名

Azure Database for MySQL マネージドMySQL
PostgreSQL 関係エンジン
ストライプ 支払いと請求

一つの声明

-- コピーなし、マージなし、スケジュールなし
セレクト   c.region、COUNT(*) AS orders、SUM(i.amount_due) AS invoiced
フロム     azure_mysql.shopdb.orders1 f
ジョイン     pg_crm.一般顧客2   c ON c.id = f.customer_id
ジョイン     請求する.stripe.invoices3   i ON i.customer = c.stripe_id
GROUP BY c.領域
ORDER BY 請求書記載のDESC;

接続、スキーマ、テーブルの3つの部分から構成され、接続名はユーザーが自由に設定できます。これは例示用の列であり、テーブルはユーザー自身が設定します。読み取り専用はすべての要素に適用され、SELECT、WITH、EXPLAINのみが使用可能で、1つのクエリで1つのソースが渡せるデータ量には上限があります。 フェデレーションクエリの仕組み

接続の詳細

Azure MySQL に必要なもの

ホスト
<サーバー>.mysql.database.azure.com
ポート
3306
ドライバ
MySqlConnectorはエージェントによって提供されるため、Azure側でインストールする必要はありません。
ユーザー名
プレーンな形式で、@servername のサフィックスは付いていません。このカードは、単一サーバーのフォームを拒否します。
TLS
SSLを使用するチェックボックスで制御され、デフォルトではオンになっています。オンの間は暗号化されますが、証明書チェーンは検証されません。このカードではホスト名によって強制されません。
プーリング
露出しているものはなく、エージェントはここでプーラー適応を適用しません。
認証
ユーザー名とパスワード。このコネクタではMicrosoft Entra IDはサポートされていません。
保存先
Azure MySQL はバッジとして保持されますが、Azure MySQL という名前の接続タイプは存在しません。
デフォルトスキーマ
データベース自体。MySQLには独立したスキーマ層がないため、フェデレーション参照にはデータベース名が含まれます。
このカードではありません
廃止されたシングルサーバー製品と、SQL Server であり独自のカードを持つ Azure SQL があります

TLSに関する説明は、正直な方が役に立つでしょう。AzureのガイドラインではTLSの使用が推奨されており、このカードもデフォルトでTLSが有効になっていますが、エージェントはホスト名に関して特別な処理を行ってTLSの使用を保証しているわけではありません。チェックボックスをオフにすると、暗号化なしで接続を試みます。Azure PostgreSQLはエージェント側で確実にTLSが強制されており、両者の違いは、ルックアップテーブルがPostgreSQLパス上に存在し、MySQLパス上には存在しないという点にあります。実際には存在しない保護を暗示するよりも、そのように説明する方がはるかに有益です。

ユーザー名チェックが重要な理由は、それがないとエラーが見づらいからです。フレキシブルサーバーに対して@servernameでログインしようとすると、単なる認証エラーとして返され、パスワードが間違っているのと区別がつかないため、ユーザーはこれまで正しかった認証情報を誤って変更してしまう可能性があります。原因を明記した一文をフォームに含めてエラーを検出することで、サポート担当者とのやり取りがわずか5秒で解決するようになります。

クロスソースクエリの場合、MySQL はスキーマではなくデータベースで修飾するため、azure_mysql という接続は azure_mysql.shopdb.orders というテーブルにアクセスします。データベースは、Postgres カード上のスキーマの位置に配置されます。CSV ファイルのフォルダ、オンプレミスの記録システム、または請求 API に、コピーもスケジュールもされない読み取り専用のステートメント 1 つで結合します。

ベンダー資料: azure.microsoft.com

よくある質問

Azure Database for MySQL に関する質問

Azure Database for MySQL のデータをクエリ ストリーム経由で読み取れるツールはどれですか?

Excel、Google Sheets、MCP、REST API、Airtable、Baserow、SeaTable、Smartsheet、Anvil、Power BI、スケジュールされたアラートやレポートなど、すべてを1つの接続で利用できます。データベースに一度接続すれば、すべてのインターフェースが同じ読み取り専用接続を読み取ることができます。ツールごとの設定やデータの複製は一切不要です。

Azure DatabaseのMySQLデータベースに対して、ファイアウォールのポートを開放する必要がありますか?

いいえ。Query Streams Network Agentはネットワーク内で動作し、暗号化された単一の送信接続を開きます。受信トラフィックを監視するものはなく、VPNも不要で、データベースは既存のファイアウォールルールを維持します。

クエリ ストリームは、Azure Database for MySQL のデータを変更することができますか?

いいえ。エージェントは実行時に読み取り専用を強制します。つまり、一度に1つのステートメント(SELECT文など)のみを実行します。認証情報はエージェント上に保持され、クエリ ストリームに送信されることはありません。

Query StreamsがAzure Database for MySQLに接続するために必要なものは何ですか?

到達可能なホスト、ロール、およびそのパスワード。エージェントがドライバーを運ぶため、データベースには何もインストールされません。ホスト: <server>.mysql.database.azure.com。ポート: 3306。ドライバー: MySqlConnector、エージェントが運ぶため、Azure 側でインストールする必要はありません。ユーザー名: プレーン、@servername サフィックスなし。カードは単一サーバー形式を拒否します。

Azure Database for MySQL を同じクエリ内で別のデータベースに結合することはできますか?

はい、それはフェデレーションクエリです。1つのステートメントで、接続.スキーマ.テーブルとして記述されたAzure Database for MySQLと他の接続を同時に参照できます。各ソースは実行可能な部分のみを実行し、結果をストリームで返します。結合は中央で行われるため、ソース同士が接続することはなく、何もコピーまたはスケジュールされません。読み取り専用はすべての部分(SELECT、WITH、EXPLAINのみ)に適用され、1つのソースが単一のクエリで渡せるデータ量には上限があります。フェデレーションクエリはプラン機能であり、フェデレーションクエリのページには現在のソースとサイズの制限が表示されます。

Azure Database for MySQLへの接続は、MySQLへの接続と異なりますか?

接続文字列のみが必要です。Azure Database for MySQL は MySQL ワイヤプロトコルを使用するため、フィルタ、スケジュール設定、共有、Excel および Google Sheets アドオン、MCP サーバーはすべて同じように動作します。Azure MySQL カードには、プロバイダが想定するホスト、ポート、SSL 設定があらかじめ入力されています。

Azure MySQL から Excel への変換ガイドはありますか?

はい、これはMySQLガイドであり、記載されているとおりAzure Database for MySQLにも適用できます。Azure MySQLはMySQLワイヤプロトコルを使用するため、Azure MySQLからExcel、Azure MySQLからGoogle Sheets、その他のすべての宛先への接続手順は同じです。Azure MySQL固有の部分は接続文字列のみですが、Azure MySQLカードが自動的に入力してくれます。

Azure MySQL は作業が行われる場所に配置する

エージェントをインストールし、データベースを指定して、保存先を選択してください。

読み取り専用 発信専用 認証情報はエージェントに保持されます