Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Consultar um banco de dados SQL Server (tds_fdw)

Última atualização: Jun 26, 2026

Use a extensão tds_fdw para acessar dados em um banco de dados SQL Server.

Pré-requisitos

  • A instância RDS PostgreSQL deve estar na versão principal do mecanismo 11 ou superior.

  • Se a instância atender ao requisito de versão principal do mecanismo, mas não oferecer suporte à extensão, atualize a versão secundária do mecanismo. Por exemplo, em uma instância RDS PostgreSQL 17, a versão secundária do mecanismo deve ser 20241030 ou posterior. Para obter instruções, consulte Atualizar a versão secundária do mecanismo.

  • Adicione o bloco CIDR da VPC da sua instância RDS PostgreSQL, como 172.xx.xx.xx/16, à lista de permissões de endereços IP da instância SQL Server.

    Nota

    Na página Database Connection da instância RDS PostgreSQL, confirme se o Network Type é VPC, anote o bloco CIDR da VPC, como 172.x.x.x/16, e verifique se a Intranet Port é 5432.

Informações básicas

O tds_fdw é um wrapper de dados externos do PostgreSQL que se conecta a bancos de dados que usam o protocolo Tabular Data Stream (TDS), como o Microsoft SQL Server.

Para mais detalhes, consulte a documentação oficial do tds_fdw.

Crie a extensão

Conecte-se à instância e execute o seguinte comando:

create extension tds_fdw;

Usar a extensão

  1. Crie um servidor externo. Exemplo:

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

    Na definição do servidor, defina servername como o endpoint interno do SQL Server e port como a porta interna do SQL Server.

  2. Crie uma tabela externa. Use um dos métodos a seguir:

    • Use a opção table_name. Exemplo:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       data varchar)
       SERVER mssql_svr
       OPTIONS (table_name 'dbo.mytable', row_estimate_method 'showplan_all');
    • Especifique as opções schema_name e table_name. Exemplo:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       data varchar)
       SERVER mssql_svr
       OPTIONS (schema_name 'dbo', table_name 'mytable', row_estimate_method 'showplan_all');
    • Use a opção query. Exemplo:

      CREATE FOREIGN TABLE mssql_table (
       id integer,
       data varchar)
       SERVER mssql_svr
       OPTIONS (query 'SELECT * FROM dbo.mytable', row_estimate_method 'showplan_all');
    • Mapeie colunas para nomes de colunas remotas. Exemplo:

      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. Crie um mapeamento de usuário. Exemplo:

    CREATE USER MAPPING FOR postgres
      SERVER mssql_svr 
      OPTIONS (username 'sa', password '123456');
  4. Importe um schema externo. Exemplo:

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