カテゴリーを見る

MySQLデータベースをセキュアなREST APIとして公開する方法

11分で読めます

MySQLのロゴ MySQL REST API

MySQLクエリを安全なものに変換する REST API Expressアプリもなければ、ホストするサーバーもない。

MySQLデータベースに対してSQLクエリを保存し、受信者ごとにAPIキーを生成して、パートナーにライブJSONエンドポイントを渡します。PHPやNodeサービスを構築する必要はありません。 3306 ポート、共有認証情報なし — 管理された読み取り専用 MySQL REST API 数分で。

インバウンドポート不要 受信者ごとのキー 読み取り専用が強制されます 展開するものは何もありません

Query Streamsは、安全性の高いリアルタイムデータベース統合プラットフォームであり、保存されたMySQLクエリを、受信者ごとのキー、読み取り専用の強制、および完全な監査証跡を備えた、パートナーがすぐに利用できるREST APIエンドポイントに変換します。 ライブ配信 MySQL REST API バックエンドを構築したり、データベースポートを開放したり、ゲートウェイをホストしたりすることなく。 詳細についてはQueryStreams.comをご覧ください そして 無料で登録する 数分で最初のMySQLエンドポイントを公開できます。

なぜMySQLデータベースをREST APIとして公開するのか?

遅かれ早かれ、チーム外の誰かがMySQLに保存されているデータを必要とします。クライアントはダッシュボードに数値を表示したい、ベンダーは毎晩のCSVではなくリアルタイムのフィードを希望する、パートナーのアプリはテーブルの一部を読み取る必要がある、といった具合です。よくある解決策はどれも何らかの漏洩につながります。到着時にはすでに古いエクスポートをメールで送信したり、契約期間終了後も有効な読み取り専用のMySQLユーザーを配布したり、小さなPHPまたはNodeサービスを立ち上げて、その認証、TLS、パッチ適用を永久に引き継いだりします。 MySQL REST API これはクリーンなバージョンです。パートナーはあなたのデータベースではなく、URLとトークンを受け取ります。これまで難しかったのは、このAPIを安全に構築し運用することでした。Query Streamsは、保存されたクエリとキーを組み合わせることで、それを実現しました。

開いているMySQLポートがありません

あなたは決して暴露しない 3306 インターネットに接続するか、ファイアウォールに穴を開けるかのいずれかです。ネットワークエージェントが発信し、着信コールはその発信接続を経由して戻ってきます。

受信者ごとのAPIキー

受取人全員に qsapi_* キー。他のキーには手を加えず、MySQLユーザーのパスワードを変更することなく、1つのキーを無効化します。

読み取り専用設計

読み取り専用バリデーターは、SQL に到達する前に SELECT 以外のステートメントを拒否します。 アップデート, 消去、または 落とす API を経由するパス。

SQLは非公開のままです

受信者はエンドポイントのURL、JSONレスポンス、および公開したフィルターを見ることができますが、SQL、スキーマ、ホスト名、接続文字列を見ることは決してありません。

ホストやパッチを適用するものはありません

Expressアプリも、Laravel APIも、リバースプロキシも不要です。エンドポイントはマネージド機能として実行されるため、デプロイパイプラインやTLSローテーションを管理する必要はありません。

永続的、期限付き、または自己消滅型

エンドポイントを永続的に設定したり、特定の日付に有効期限を設定したり、一定数のリクエスト後に自動的に削除される固定の呼び出し予算を設定したりできます。

MySQLにREST APIを導入する一般的な方法とその問題点

MySQLにHTTPレイヤーを追加する方法はいくつかあり、それぞれに十分な機能があります。しかし、どの方法もバックエンドの管理、ネットワークへの露出、あるいはその両方を伴います。ここでは、「特定のパートナーが特定の結果セットを読み取れるようにする」という単純な目的の場合、一般的なアプローチとQuery Streamsの共有エンドポイントを比較してみましょう。

懸念 DIY PHP / Node / Laravel API 自動APIツール(セルフホスト型) クエリストリーム
APIからアクセス可能なデータベース MySQLに到達する必要があります MySQL(多くの場合、公開ポート)にアクセスできる必要があります。 発信専用エージェント - 受信ポートなし
受取人が持っているもの サービスへのURL スキーマへのURL 1つのクエリ専用のキー
スキーマの公開 あなたが手作業でコーディングするものは何であれ スキーマ全体がデフォルトで公開されます 保存されたクエリは1つだけで、それ以外は何もありません。
受信者ごとのキー + 取り消し 自分で作る 自分で作る 内蔵型
すべての通話の監査ログ 自分で追加してください 自分で追加してください 内蔵型
TLSの操作/パッチ適用/ローテーション はい、永遠に はい、永遠に 管理はお任せください
最初のエンドポイントまでの時間 数時間から数日

バックエンドの構築や管理をしたくないですか?

複雑なビジネスロジックが必要な場合は、独自にAPIサーバーを構築するのが最も柔軟な選択肢です。しかし、特定のパートナーに、独自のキー、監査証跡、そして実行すべきサービスを持たない、管理された読み取り専用の結果セットを渡すだけであれば、Query Streamsはまさにそのニーズを満たします。バックエンドは本当に必要になったときに構築し、「このクエリを安全に共有する」ことが目的であれば、Query Streamsを使用しましょう。

Query Streams が MySQL クエリを REST API に変換する方法

ネットワークエージェントがインストールされ、MySQLコネクタが設定されたら、保存済みのクエリを共有RESTエンドポイントに展開するには、約3つの手順が必要です。Excel、Googleスプレッドシート、またはMCPサーバー用のクエリストリームを既に使用している場合は、エージェントとコネクタは既に設置済みですので、手順2から開始してください。

1

エージェント経由でMySQLに接続します

ネットワークエージェントをデータベースの隣にインストールし、標準の読み取り専用ユーザーを持つMySQLコネクタを追加します。エージェントはクエリストリームへのTLS接続を確立するため、データベースがインターネットに公開されることはありません。

2

SQLクエリを保存する

書く セレクト MySQL接続に対してクエリビルダーで操作してください。JOIN、サブクエリ、パラメータなど、すべて使用可能です。名前を付けて保存してください。SELECTできるものはすべてエンドポイントにできます。

3

それを宣伝し、鍵を共有しましょう

インストール タブを開き、エンドポイント タイプ (永続、期限付き、またはコール バジェット) と出力形式を選択してから、受信者をメールで招待します。受信者はマジック リンク クレームと独自の qsapi_* 鍵。

保存されたクエリ1つ、多数のサーフェス

同じ保存済みMySQLクエリでExcelの更新、Google Sheetsのサイドバー、MCPサーバーを介したClaudeまたはCursorの会話を実行できます。 そして 同時に、パートナー向けのRESTエンドポイントも作成できます。クエリは一度作成するだけで、Query Streamsがインターフェースを処理します。

MySQLポートが開いていない、認証情報が共有されていない

セキュリティモデルこそが、チームがパブリックデータベースポートではなくこの方法を選択する理由です。MySQLパスワードは、ネットワーク上のエージェントの暗号化された認証情報ストア内にのみ保存され、当社のクラウドに送信されることも、受信者に表示されることもありません。さらに、各エンドポイントには、共有前に受信者ごとにセキュリティを強化できる制御機能が備わっています。

発信専用エージェント

エージェントは外部に接続します agent.querystreams.com ポート443で動作します。ファイアウォールは通常のHTTPS送信を認識しますが、受信ポート、VPN、トンネルは認識しません。

読み取り専用の強制

エージェント内で、ネットワーク上で、ステートメントがMySQLに到達する前にバリデーターが実行されます。SELECT以外のステートメントは拒否されます。 読み取り専用違反.

IP + CORS許可リスト

受信者のキーを特定のIPアドレスまたはCIDR範囲に紐付け、各エンドポイントへの呼び出しを許可するブラウザの発信元を制限します。リスト外の呼び出しは、SQLクエリが実行される前に拒否されます。

レート制限 + バイト割り当て

2段階のレート制限(キーごと、エンドポイントごと)に加え、オプションの月間バイト上限により、通信量の多い受信者や通信量が制御不能な受信者を安全な範囲内に抑えることができます。

MySQL REST API を呼び出す

受信者は他の REST API と同様にエンドポイントを呼び出します。ベアラートークンと URL を使用します。公開した保存済みクエリ パラメータは呼び出しごとに設定できます。クエリ文字列で設定できます。 得る またはJSONボディで 役職エージェントはこれらの値を適切なプリペアドステートメントのパラメータとしてバインドし、文字列連結は決して行わないため、受信者はフィルタを抜け出してSQLを挿入することはできません。

フィルターパラメータ付きのGETリクエスト
# 受信者がMySQLベースのエンドポイントに対して呼び出しを行います カール -H 「認証: Bearer qsapi_K7…ZmQ」 \ 「https://api.querystreams.com/v1/endpoints/orders-today?warehouse=US-EAST&since=2026-01-01」

呼び出しごとに出力形式を選択します。 受け入れる ヘッダー(または ?format= クエリパラメータ): JSON 単一の配列の場合、 CSV スプレッドシートやpandasの場合、またはストリーミングエンドポイントの場合、 NDJSON (1行に1つのJSON行)解析パイプライン用。帯域幅に敏感なコンシューマーは、 LZ4 ペイロード圧縮 Accept-Encoding: lz4非圧縮応答も標準規格に準拠します gzip 自動的にワイヤ上に表示されます。静的モードとストリーミングモードの詳細、4 つのワイヤの組み合わせ、および OpenAPI 3.1 生成については、以下を参照してください。 SQLデータベース用のインスタントREST API ガイド。

利用料金の請求方法

APIプラットフォームは、すべてのQuery Streamsプランに含まれており、別途契約する必要はありません。また、Excel、Google Sheets、MCPサーバーと同じ月間データ使用量制限を共有します。 バイト単位課金とLZ4圧縮の計算方法 →

Power BI、Tableau、およびJSONを読み取るあらゆる機器に接続できます。

すべてのエンドポイントが標準を返すため JSON CSVとストリーミングNDJSONに対応しているため、RESTフィードを読み取ることができるツールであれば、MySQLデータを直接利用できます。ツール側で何もインストールする必要がなく、MySQLドライバも不要です。 Power Query Microsoft BI スタックへの最も簡単な橋渡しは、 Power BI 選ぶ データ取得 → Webからエンドポイント URL を貼り付け、 承認 ヘッダーがあり、Power Query は JSON を解析して、データ モデルにフィードする更新可能なテーブルに変換します。(スプレッドシート内のライブ データの場合は、ネイティブ クエリ ストリーム Excel アドオン より簡単な方法は、Power BI モデル自体にデータが必要な場合は Power Query を使用することです。

Microsoft Power Query のロゴ Power Query データ取得 → Webから、URLとベアラートークンを貼り付け、JSONを更新可能なテーブルに展開します。
Microsoft Power BI のロゴ Power BI 同じPower Queryエンジン - エンドポイントをモデルに直接ロードして更新をスケジュールします
Tableauのロゴ タブロー ライブダッシュボードのエンドポイントにWebデータコネクタまたはJSONソースを指定します。
郵便配達員のロゴ 郵便配達人 OpenAPI 3.1仕様をインポートし、ワンクリックでリクエストの送信、検査、共有を行うことができます。

また、 n8n, Qlik, カール、Python (リクエスト または pandas.read_jsonInsomnia、Hoppscotch、またはHTTPリクエストを送信してJSONを読み取ることができるスクリプトやワークフロー。

Amazon RDS、Cloud SQL、PlanetScaleにも対応しています。

MySQL の実行場所は問いません。エージェントは、オンプレミスのサーバーでも、Amazon RDS と Aurora MySQL、Azure Database for MySQL、Google Cloud SQL for MySQL、PlanetScale などのマネージド サービスでも同じ方法で接続します。レイテンシを最小限に抑えるには、データベースと同じネットワークまたはリージョンにエージェントをデプロイしてください。1 つの Query Streams アカウントで、リージョンやクラウドをまたいで複数のエージェントを実行でき、単一のエンドポイントは、どのエージェントが担当しても同じように動作します。

MariaDBを使用していますか?

同じコネクタはMariaDBにも対応しており、MariaDBはMySQLワイヤプロトコルを共有しています。データベースがMariaDBの場合は、専用の手順に従ってください。 MariaDBデータベースをREST APIとして公開する ガイド - ワークフローは同じです。同じアプローチは、PostgreSQL、Microsoft SQL Server、SQLite、Microsoft Access、Snowflake、Oracle、BigQuery、およびDuckDBにも適用されます。 コネクタ設定ガイド 現在のリストについては、こちらをご覧ください。

よくある質問

ポートを開放したり、MySQLをインターネットに公開したりする必要はありますか? +
いいえ、ネットワークエージェントはポート443でTLS経由で発信するため、着信コールはその1つの接続とMySQLポート(3306 デフォルトでは)は決して公開されません。 発信専用接続の仕組み →
受信者は私のSQLやデータベースの認証情報を見ることができますか? +
絶対にありません。受信者にはエンドポイントURL、レスポンス、および公開したフィルターのみが表示され、MySQLパスワードはネットワーク上のエージェントの暗号化された認証情報ストアに保持されます。 プライベートに保たれるものと、受信者が見るもの →
MySQL REST APIを利用するには、バックエンドを構築する必要がありますか? +
いいえ。PHP、Node、またはLaravelサービスを作成してホストする代わりに、SQLクエリを保存してエンドポイントに昇格させるだけで、Query Streamsが認証、TLS、レート制限、監査ログ、および受信者ごとのキーを提供します。 構築またはパッチを適用するバックエンドが存在しない理由 →
APIはどのような出力形式を返すことができますか? +
JSON(デフォルトは単一の配列)、CSV(RFC 4180)、およびストリーミングエンドポイントではNDJSONが、呼び出しごとに選択されます。 受け入れる ヘッダーまたは ?format= パラメータ。オプションでLZ4ペイロード圧縮も利用可能。 ワイヤーフォーマットと圧縮オプション →
受信者は結果をフィルタリングできますか、それとも固定されたクエリ結果を受け取るだけですか? +
あなたが決める — 公開するパラメータはすべて呼び出しごとのフィルタになります (得る クエリ文字列または 役職 エージェントが準備済みステートメントのパラメーターとしてバインドするJSONボディ)であるため、フィルターを使用してSQLを挿入することはできません。 公開パラメータとSQLインジェクション対策の仕組み →
エンドポイントは期限切れになったり、自己消滅したりすることはできますか? +
はい。エンドポイントは永続的に設定することも、特定の日付で有効期限が切れるように設定することも、一定数のリクエスト後に自動的に消滅する固定のコールバジェットを設定することもできます。また、データベースのパスワードを変更することなく、受信者のキーを即座に失効させることも可能です。 エンドポイントの有効期間と受信者ごとのキー制御 →
Amazon RDS、Cloud SQL、PlanetScaleと連携できますか? +
はい。エージェントは、オンプレミス環境でもマネージド環境でも、アクセス可能なMySQLであればどれでも接続できます。Amazon RDS、Aurora MySQL、Azure Database for MySQL、Google Cloud SQL for MySQL、PlanetScaleなど、すべて対応しています。レイテンシを最適化するには、データベースと同じリージョンでエージェントを実行してください。1つのアカウントで、クラウドやリージョンをまたいで複数のエージェントを実行できます。
受信者はQuery Streamsアカウントを必要としますか? +
メールでの共有をお勧めします。受信者にはマジックリンクが送信され、承認すると無料ティアの組織が自動的に作成されます。または、サービスキーを発行して、マシン間アクセスを自動化することもできます。 受信者のクレームとサービスキーの比較 →

スタート

最初のMySQL REST APIを無料で公開しましょう。

サインアップ後、MySQLデータベースの隣にネットワークエージェントをインストールし、SQLクエリを保存して、受信者にマジックリンク付きのクレームをメールで送信します。受信者ごとのキー、読み取り専用の強制、および完全な監査証跡は、最初の呼び出しから有効になります。

関連ガイド: SQLデータベース用のインスタントREST API | データベースREST APIプラットフォーム | MariaDBをREST APIとして公開する | コネクタ設定ガイド

カテゴリ: APIプラットフォーム

タグ: mysql-rest-api、mysql、rest-api、expose-mysql-as-api、mysql-api-no-code、share-mysql-data、per-recipient-keys、no-code-api、database-rest-api

メタディスクリプション: MySQLクエリを、受信者ごとのキーを持つ安全な読み取り専用REST APIに変換します。Expressアプリも、ポートの開放も、コードも不要です。

更新日 2026 年 6 月 16 日