カテゴリーを見る

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

11分で読めます

PostgreSQLのロゴ PostgreSQL REST API

PostgreSQLクエリを安全なものに変換する REST API ―PostgRESTもホストするサーバーもありません。

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

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

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

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

遅かれ早かれ、チーム外の誰かがPostgreSQLにあるデータを必要とするでしょう。クライアントはダッシュボードに数値を表示したい、ベンダーは毎晩のCSVではなくリアルタイムのフィードを求めている、パートナーのアプリはテーブルの一部を読み取る必要がある、といった具合です。よくある解決策はどれも、本来なら隠しておきたかった情報を漏洩させてしまいます。例えば、届いた瞬間に古くなってしまうエクスポートファイルをメールで送信したり、読み取り専用のファイルを配布したりすることになります。 psql エンゲージメント期間を超えて存続するログイン、または小規模なサービスを立ち上げて、その認証、TLS、パッチ適用を永久に継承する。 PostgreSQL REST API これは、この仕組みをより洗練させたものです。パートナーは、データベースではなく、URLとトークンを受け取ります。これまで難しかったのは、このAPIを安全に構築・運用することでした。Query Streamsを使えば、保存済みのクエリとキーだけで済みます。

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

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

受信者ごとのAPIキー

受取人全員に qsapi_* キー。他のキーには手を加えず、PostgreSQLのパスワードを変更することなく、1つのキーだけを失効させることができます。

読み取り専用設計

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

SQLは非公開のままです

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

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

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

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

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

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

この目的のためにはよく知られたツールがあり、それらはそれぞれの用途において優れた性能を発揮します。しかし、どのツールも、インフラストラクチャの管理、ネットワークへの露出、あるいはその両方をユーザーに強いるという欠点があります。ここでは、「特定のパートナーが特定の結果セットを読み取れるようにする」という単純な目的の場合における、一般的なアプローチとQuery Streams共有エンドポイントとの比較を示します。

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

パートナー共有のためのPostgRESTの代替手段をお探しですか?

PostgRESTは、独自のスキーマ上で完全なセルフホスト型RESTインターフェースを構築したい場合に最適です。一方、指定されたパートナーに、独自のキー、監査証跡を備え、サーバーの実行を必要としない、管理された読み取り専用の結果セットを渡したい場合は、Query Streamsがまさにそのニーズを満たします。両者は共存可能です。PostgRESTは社内アプリケーションに、Query Streamsは外部への共有に利用できます。

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

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

1

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

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

2

SQLクエリを保存する

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

3

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

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

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

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

オープンなPostgresポートがなく、共有認証情報もありません。

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

発信専用エージェント

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

読み取り専用の強制

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

IP + CORS許可リスト

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

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

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

PostgreSQL REST APIを呼び出す

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

フィルターパラメータ付きのGETリクエスト
# 受信者がPostgresベースのエンドポイントに対して呼び出しを行います カール -H 「認証: Bearer qsapi_K7…ZmQ」 \ 「https://api.querystreams.com/v1/endpoints/orders-by-region?region=EMEA&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、Googleスプレッドシート、MCPサーバーと同じ月間バイト容量を使用します。LZ4呼び出しは圧縮バイトに基づいて課金され、それ以外の場合は非圧縮バイトに基づいて課金されます。 共有バイト割り当て量の計測方法 →

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

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

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

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

PostgreSQL以上のもの

同じワークフローで、Microsoft SQL Server、MySQL、MariaDB、SQLite、Microsoft Access、Snowflake、Oracle、BigQuery、またはDuckDBから保存されたクエリをRESTエンドポイントに昇格させます。PostgreSQLは、最も人気のある出発点の1つにすぎません。 コネクタ設定ガイド 現在のリストについては、こちらをご覧ください。

よくある質問

ポートを開放したり、PostgreSQLをインターネットに公開したりする必要はありますか? +
いいえ、ネットワークエージェントはポート443でTLS経由で発信するため、着信コールはその1つの発信接続とPostgreSQLポート(5432 デフォルトでは)は決して公開されません。 発信専用接続の仕組み →
受信者は私のSQLやデータベースの認証情報を見ることができますか? +
決してありません。受信者にはエンドポイントURL、レスポンス、および公開したフィルターのみが表示され、SQLおよびPostgreSQLのパスワードはネットワーク上のエージェントの暗号化された認証情報ストア内に保持されます。 各キーの背後に何が秘匿されているか →
これはPostgRESTやHasuraとどう違うのですか? +
PostgRESTとHasuraは、スキーマに対して幅広いAPIサーフェスを生成し、ホスト、セキュリティ保護、Postgresからのアクセスが可能なサービスとして実行されます。一方、Query Streamsは、アウトバウンド共有に関して、より限定的なアプローチを採用しています。保存済みのクエリを1つのエンドポイントとして公開し、各受信者には取り消し可能なキーが付与され、すべての呼び出しが監査され、デプロイやパッチ適用を行う必要は一切ありません。多くのチームは、PostgRESTのような社内ツールとQuery Streamsを組み合わせて、社外とのデータ共有に活用しています。
APIはどのような出力形式を返すことができますか? +
JSON(デフォルト)、CSV、およびストリーミングエンドポイントではNDJSONが、呼び出しごとに選択されます。 受け入れる ヘッダーまたは ?format= パラメータ。オプションでLZ4ペイロード圧縮も利用可能。 ワイヤーフォーマットと圧縮オプション →
受信者は結果をフィルタリングできますか、それとも固定されたクエリ結果を受け取るだけですか? +
決めるのはあなたです。保存されたクエリで公開するパラメータはすべて、受信者が呼び出しごとに設定できるフィルタになります。クエリ文字列に対して 得る またはJSONボディ 役職公開しないパラメータは固定されます。エージェントはすべての値をプリペアドステートメントのパラメータとしてバインドするため、フィルタを使用してSQLを挿入することはできません。
エンドポイントは期限切れになったり、自己消滅したりすることはできますか? +
はい。エンドポイントは永続的に設定することも、特定の日付で有効期限が切れるように設定することも、通話予算を固定することも可能です。また、他の受信者のキーに影響を与えたり、データベースのパスワードを変更したりすることなく、任意の受信者のキーを即座に取り消すことができます。 エンドポイントの有効期間と受信者ごとの鍵の失効 →
Amazon RDS、Azure、Cloud SQL、Supabase、またはNeonと連携できますか? +
はい。エージェントは、オンプレミス環境でもマネージド環境でも、アクセス可能なPostgreSQLであればどれでも接続できます。Amazon RDS、Aurora PostgreSQL、Azure Database for PostgreSQL、Google Cloud SQL for PostgreSQL、Supabase、Neonなど、すべて対応しています。レイテンシを最適化するには、データベースと同じリージョンでエージェントを実行してください。1つのアカウントで、クラウドやリージョンをまたいで複数のエージェントを実行できます。
受信者はQuery Streamsアカウントを必要としますか? +
メールでの共有をお勧めします。受信者にはマジックリンクのクレームと、自動的に作成された無料ティアの組織が送られます。または、代わりにサービスキーを発行して、マシン間アクセスを自動化することもできます。 受信者ごとの請求とサービスキーの比較 →

スタート

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

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

関連ガイド: SQLデータベース用のインスタントREST API | データベースREST APIプラットフォーム | MCP経由でPostgreSQLをClaudeに接続します。 | コネクタ設定ガイド

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

タグ: postgres-rest-api、postgresql、rest-api、expose-postgres-as-api、postgrest-alternative、share-postgres-data、per-recipient-keys、no-code-api、database-rest-api

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

更新日 2026 年 6 月 16 日