すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:SQL Server データベースへのクエリ (tds_fdw)

最終更新日:Jun 21, 2026

tds_fdw 拡張を使用して、SQL Server データベース内のデータにアクセスします。

前提条件

  • RDS PostgreSQL インスタンスは、メジャーエンジンバージョン 11 以降を実行している必要があります。

  • インスタンスがメジャーエンジンバージョンの要件を満たしているにもかかわらず、この拡張をサポートしていない場合は、マイナーエンジンバージョンをアップグレードしてください。 たとえば、RDS PostgreSQL 17 インスタンスの場合、マイナーエンジンバージョンは 20241030 以降である必要があります。 手順については、「マイナーエンジンバージョンのアップグレード」をご参照ください。

  • RDS PostgreSQL インスタンスの VPC CIDR ブロック (172.xx.xx.xx/16 など) を、SQL Server インスタンスの IP アドレスホワイトリストに追加してください。

    説明

    RDS PostgreSQL インスタンスの [データベース接続] ページで、ネットワークタイプが VPC であることを確認し、VPC CIDR ブロック (172.x.x.x/16 など) をメモし、イントラネットポート5432 であることを確認します。

背景情報

tds_fdw は、Microsoft SQL Server など、表形式データ ストリーム (TDS) プロトコルを使用するデータベースに接続するための PostgreSQL 外部データラッパです。

詳細については、「tds_fdw の公式ドキュメント」をご参照ください。

拡張の作成

インスタンスに接続し、次のコマンドを実行します。

create extension tds_fdw;

拡張の使用

  1. 外部サーバを作成します。 例:

    CREATE SERVER mssql_svr
      FOREIGN DATA WRAPPER tds_fdw
      OPTIONS (servername '<endpoint>', port '<port>', database 'tds_fdw_test', tds_version '7.1');
    説明

    サーバ定義では、servername は SQL Server の内部エンドポイントに設定し、port は SQL Server の内部ポートに設定する必要があります。

  2. 外部テーブルを作成します。 次のいずれかの方法を使用できます。

    • table_name オプションを使用します。 例:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       data varchar)
       SERVER mssql_svr
       OPTIONS (table_name 'dbo.mytable', row_estimate_method 'showplan_all');
    • schema_name オプションと table_name オプションを使用します。 例:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       data varchar)
       SERVER mssql_svr
       OPTIONS (schema_name 'dbo', table_name 'mytable', row_estimate_method 'showplan_all');
    • query オプションを使用します。 例:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       data varchar)
       SERVER mssql_svr
       OPTIONS (query 'SELECT * FROM dbo.mytable', row_estimate_method 'showplan_all');
    • 列をリモート列名にマッピングします。 例:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       col2 varchar OPTIONS (column_name 'data'))
       SERVER mssql_svr
       OPTIONS (schema_name 'dbo', table_name 'mytable', row_estimate_method 'showplan_all');
  3. ユーザマッピングを作成します。 例:

    CREATE USER MAPPING FOR postgres
      SERVER mssql_svr 
      OPTIONS (username 'sa', password '123456');
  4. 外部スキーマをインポートします。 例:

    IMPORT FOREIGN SCHEMA dbo
      EXCEPT (mssql_table)
      FROM SERVER mssql_svr
      INTO public
      OPTIONS (import_default 'true');