カテゴリーを見る

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

11分で読めます

MariaDBのロゴ マリアド REST API

MariaDBクエリを安全なものに変換する REST API バックエンドを構築する必要もなく、ポート3306を開く必要もありません。

MariaDBデータベースに対してSQLクエリを保存し、受信者ごとにAPIキーを生成し、パートナーにライブJSONエンドポイントを渡します。 PHPまたはNodeアプリ 書き込みには、ホストするサーバーもファイアウォールの脆弱性もなく、管理された読み取り専用環境のみ MariaDB REST API 数分で。

バックエンドコードなし 受信者ごとのキー 読み取り専用が強制されます 開いているポートはありません

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

MariaDBデータベースをREST APIとして公開する理由とは?

MariaDBはWebアプリケーションの大部分を支えており、遅かれ早かれ、そのアプリケーション以外の何かがデータの一部を必要とするようになります。クライアントはダッシュボードに数値を表示したい、ベンダーは毎晩のCSVではなくリアルタイムのフィードを希望する、パートナーのアプリは整った結果セットを1つだけ読み取る必要がある、といった具合です。よくある解決策は「小さなAPIを作成する」ことです。そこで、Express、Laravel、またはFlaskアプリを立ち上げ、認証とレート制限を追加し、どこかにデプロイし、パッチを適用し続ければ、永久にサービスを所有することになります。代替案であるポート3306を開放してデータベースログインを配布する方法は、さらに悪いものです。そのログインはすべてを読み取ることができ、特定のコンシューマーだけを取り消すことはできません。 MariaDB REST API 共有を前提に設計されたこのソリューションは、そういった手間を一切省きます。パートナーには、データベースアカウントや管理サーバーではなく、URLとトークンが提供されます。Query Streamsは、保存済みのクエリとキーを組み合わせることで、これを実現します。

バックエンドの構築やホスティングは不要です。

Expressアプリも、Laravelコントローラーも、Flaskルートも不要です。サービスの作成、デプロイ、パッチ適用も必要ありません。エンドポイントはマネージド機能として動作します。

受信者ごとのAPIキー

受取人全員に qsapi_* キー。他のキーには手を加えず、共有のMariaDBパスワードをリセットすることなく、1つのキーを無効にすることができます。

読み取り専用設計

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

SQLは非公開のままです

受信者はエンドポイントのURL、JSONレスポンス、および公開したフィルターのみを確認できます。SQL、スキーマ、テーブル構造は一切表示されません。

開いているポート3306はありません

エージェントは送信接続のみを行います。MariaDBサーバーはファイアウォールの内側に留まり、受信ポートはなく、公開データベースログインもできません。

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

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

MariaDBのREST経由のデータ転送 ― 一般的な方法とその問題点

MariaDBにHTTPインターフェースを構築する方法は実際に存在し、多くのチームがそれを構築しています。しかし、どの自作アプローチでも、コード、サーバー、またはデータベースログインを厳密に制御できないという問題が生じます。ここでは、「特定のパートナーが特定の結果セットを読み取れるようにする」という単純な目的の場合、一般的なアプローチとQuery Streams共有エンドポイントとの比較を示します。

懸念 DIY API(Express / Laravel / Flask) ポート3306を開く + データベースログイン クエリストリーム
受取人が持っているもの アプリ内のURL MariaDBのユーザー名とパスワード 1つのクエリ専用のキー
表面露出 あなたが手作業でコーディングするものは何であれ ログインして読み取れるすべてのテーブル 保存されたクエリは1つだけで、それ以外は何もありません。
ネットワークの変更が必要です アプリをホストして公開する 受信ポート3306を開く なし — 発信専用エージェント
受信者ごとのキー + 取り消し 自分で作る 共有ログイン 内蔵型
すべての通話の監査ログ 自分で追加してください 原因を特定するのは難しい 内蔵型
操作/パッチ適用/保守を行う はい、永遠に はい、さらに露出も 管理はお任せください
最初のエンドポイントまでの時間 数時間(そしてセキュリティ上の悩みの種)

DIY APIが依然として有効な場合

完全な読み書きアクセス、カスタムビジネスロジック、または多数のエンドポイントを持つ公開API製品が必要な場合は、手作業で構築したサービスが適切なツールです。Query Streamsは、より一般的なケース、つまり、指定されたパートナーに、独自のキー、監査証跡を備え、構築や保守が不要な、管理された読み取り専用の結果セットを1つ渡すだけでよい場合に適しています。

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

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

1

エージェントを介してMariaDBに接続する

ネットワークエージェントをインストールし、読み取り専用ユーザー ( 選択権限付与 アカウントが理想的です)。エージェントはクエリ ストリームに対してアウトバウンド TLS 接続を確立します。受信ファイアウォール ルールはなく、データベース ログインが受信者に到達することはありません。

2

SQLクエリを保存する

書く セレクト MariaDB接続に対してクエリビルダーでクエリを実行してください。JOIN、CTE、ウィンドウ関数、パラメータなど、すべて使用可能です。名前を付けて保存してください。SELECTできるものはすべてエンドポイントにすることができます。

3

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

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

読み取り専用のMariaDBユーザーを使用する

多層防御のために、コネクタをMariaDBアカウントに向けます。 選択権限付与 必要なテーブルのみを対象とします。クエリ ストリームは既に SELECT 以外のステートメントをブロックしますが、最小権限ログインにより、設定ミスがあっても書き込みはできません。同じコネクタで、Excel、スプレッドシート、MCP サーバー、および REST エンドポイントにアクセスできます。

開いているポートはありません、共有データベースへのログインもありません

セキュリティモデルこそが、チームが3306番ポートを開放したり、新たなサービスを構築したりする代わりにこのソリューションを選択する理由です。MariaDBの認証情報は、ネットワーク上のエージェントの暗号化された認証情報ストア内にのみ保存され、クラウドに送信されることも、受信者に表示されることもありません。さらに、各エンドポイントには受信者ごとの制御機能があり、共有前にセキュリティを強化できます。

発信専用エージェント

エージェントは外部に接続します agent.querystreams.com ポート443で動作します。ネットワーク上では通常のHTTPS送信が行われます。受信ポート3306、VPN、トンネルは使用されません。

読み取り専用の強制

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

IP + CORS許可リスト

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

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

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

MariaDB REST APIを呼び出す

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

フィルターパラメータ付きのGETリクエスト
# MariaDB ベースのエンドポイントに対する受信者呼び出し カール -H 「認証: Bearer qsapi_M4…rXp」 \ 「https://api.querystreams.com/v1/endpoints/active-members?plan=pro&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プラットフォームはすべてのプランに含まれており、Excel、Sheets、MCPサーバーと同じ月間バイト割り当て量を使用します。 lz4 通話料金は圧縮バイトで計算され、それ以外はすべて非圧縮で計算されます。 データレルム課金がトランスポート間でどのように機能するか →

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

すべてのエンドポイントが標準を返すため JSON CSVとストリーミングNDJSONに対応しているため、RESTフィードを読み取ることができるツールであれば、MariaDBデータを直接利用できます。ツール側で何もインストールする必要がなく、データベースドライバも不要です。 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を読み取ることができるスクリプトやワークフロー。

マネージドMariaDBでも動作します

MariaDB の実行場所は問いません。エージェントは、Linux マシン上のセルフホスト型 MariaDB、コンテナ、Amazon RDS for MariaDB、Azure Database for MariaDB、Google Cloud SQL、SkySQL、またはマネージド MariaDB ホストなど、どの MariaDB ホストにも同じ方法で接続します。レイテンシを最小限に抑えるには、データベースの近くでエージェントを実行してください。1 つの Query Streams アカウントで、マシンやリージョンをまたいで複数のエージェントを実行でき、単一のエンドポイントはどのエージェントが担当しても同じように動作します。

代わりにMySQLを実行しますか?

MariaDB は MySQL のフォークとして始まり、Query Streams はそれらを 1 つのコネクタ ファミリーとして扱います。同じワークフローが、 MySQLデータベースをREST APIとして利用する セキュリティと出力オプションは同一です。また、PostgreSQL、Microsoft SQL Server、SQLite、Microsoft Access、Snowflake、Oracle、BigQuery、DuckDB から保存されたクエリもサポートします。 コネクタ設定ガイド 全リストについてはこちらをご覧ください。

よくある質問

ポート3306を開放したり、MariaDBをインターネットに公開したりする必要はありますか? +
いいえ。ネットワークエージェントは1つの送信TLS接続(ポート443)を行うため、MariaDBはファイアウォールの内側に留まり、受信ポート3306は使用されず、受信者はスコープ付きAPIキーのみを受け取り、データベースへのログインは行いません。 発信専用接続の仕組みをご覧ください →
受信者は私のSQLやデータベースの認証情報を見ることができますか? +
絶対にありません。受信者にはエンドポイントURL、レスポンス、および公開したフィルターのみが表示され、SQLおよびMariaDBの認証情報はネットワーク上のエージェントの暗号化されたストア内に保持されます。 受信者ごとのキーモデルがSQLのプライバシーをどのように保護するか →
これは単なるMySQLコネクタですか?MariaDBは完全に動作しますか? +
MariaDBは完全にサポートされています。Query StreamsはMySQLとMariaDBに共通のコネクタファミリーを使用し、接続先のサーバーを自動的に検出するため、MariaDB固有の動作も期待どおりに機能します。MariaDB Community、Enterprise、またはマネージドMariaDBサービスのいずれを使用している場合でも、保存済みクエリをエンドポイントに送信するワークフローは同じです。
APIはどのような出力形式を返すことができますか? +
ストリーミングエンドポイントでは、JSON (デフォルト)、CSV、および NDJSON が呼び出しごとに選択されます。 受け入れる ヘッダーまたは ?format= オプションのLZ4ペイロード圧縮と自動 gzip 電線上で。 出力フォーマットと配線組み合わせの説明 →
受信者は独自のSQLを実行したり、私のクエリを変更したりできますか? +
いいえ。エンドポイントは保存されたクエリを1つだけ実行し、受信者は公開されたフィルタのみを設定でき、読み取り専用のバリデーターがMariaDBに到達する前にSELECT以外のクエリをすべてブロックします。 読み取り専用の強制とスコープの仕組み →
これはAmazon RDS、Cloud SQL、またはSkySQLで動作しますか? +
はい。エージェントは、セルフホスト、Amazon RDS for MariaDB、Azure Database for MariaDB、Google Cloud SQL、MariaDB SkySQL、またはコンテナなど、実行環境に関わらず、MariaDBへの接続方法は同じです。レイテンシを最小限に抑えるには、エージェントをデータベースと同じネットワークまたはリージョンで実行してください。
エンドポイントは期限切れになったり、自己消滅したりすることはできますか? +
はい。エンドポイントは永続的に設定することも、特定の日付で期限切れにすることも、一定の通話予算が経過した後に自動的に消滅させることも可能です。また、他の受信者のキーに影響を与えることなく、任意の受信者のキーを即座に取り消すことができます。 有効期限切れキーとキルスイッチについて解説 →

スタート

MariaDB REST APIを無料で公開しましょう。

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

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

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

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

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

更新日 2026 年 6 月 16 日